WinForm开发必知:主窗体如何安全调用子窗体的方法
馃専寮€鍦虹伒榄傛嫹闂細涓轰粈涔堜綘鐨勫瓙绐椾綋鎬昏鑱嬩綔鍝戯紵
"鏄庢槑鍦ㄤ富绐椾綋鍐欎簡璋冪敤浠g爜锛岃繍琛屽悗瀛愮獥浣撴娲讳笉鍝嶅簲锛?鈥斺€旇繖鍦烘櫙鐔熶笉鐔熸倝锛熷氨鍍忓鐫€蹇€掓煖鍠婂紑闂ㄥ瘑鐮侊紝缁撴灉鍙戠幇杈撶殑鏄殧澹佹煖瀛愮殑瀵嗙爜...浠婂ぉ灏卞甫澶у鐮磋В杩欎釜"璺ㄦ湇鑱婂ぉ"闅鹃锛?/p>
馃攳鍏堟悶鎳傝嚧鍛借鍖猴紙鏂版墜蹇呰俯鐨?涓潙锛?/h3>
- 鈥?strong>鈥嬬洿鎺ew瀛愮獥浣撳氨璋冪敤鈥?/strong>鈥?鈫?鐩稿綋浜庣粰鍏嬮殕浜哄彂鎸囦护锛屽師鐗堟牴鏈笉鐞嗕細
- 鈥?strong>鈥嬫病璁剧疆璁块棶鏉冮檺鈥?/strong>鈥?鈫?灏卞儚鎯冲紑鍒汉瀹剁殑淇濋櫓绠憋紝閽ュ寵閮戒笉甯?/li>
- 鈥?strong>鈥嬪拷鐣ョ敓鍛藉懆鏈熲€?/strong>鈥?鈫?瀛愮獥浣撻兘鍏抽棴浜嗚繕鎷煎懡call鏂规硶锛岃窡鎵撶數璇濈粰鍏虫満鐢ㄦ埛鏈夊暐鍖哄埆锛?/li>
馃挕鈥?strong>鈥嬭娉暟鎹€?/strong>鈥嬶細璐村惂璁哄潧缁熻鏄剧ず锛?3%鐨勭獥浣撲氦浜掓姤閿欓兘鏉ヨ嚜杩欎笁涓潙锛?/p>
馃洜锔忓畨鍏ㄨ皟鐢ㄧ殑涓夊ぇ缁濇嫑锛堥檮瀵规瘮琛級
鎷涘紡鈶?鍏紑澶ф硶濂斤紙閫傚悎鎬ユ€у瓙锛?/h4>
csharp澶嶅埗// 瀛愮獥浣撳啓涓叕寮€鏂规硶
public void 鏇存柊鏁版嵁(string 鍐呭)
{
label1.Text = 鍐呭 + "馃崡"; // 鍔犱釜楦¤吙鏇撮啋鐩?/span>
}
// 涓荤獥浣撴搷浣滐紙閲嶇偣锛侊級
if(childForm != null && !childForm.IsDisposed)
{
childForm.鏇存柊鏁版嵁("鑰佹澘鎵撻挶浜嗭紒");
}
// 瀛愮獥浣撳啓涓叕寮€鏂规硶
public void 鏇存柊鏁版嵁(string 鍐呭)
{
label1.Text = 鍐呭 + "馃崡"; // 鍔犱釜楦¤吙鏇撮啋鐩?/span>
}
// 涓荤獥浣撴搷浣滐紙閲嶇偣锛侊級
if(childForm != null && !childForm.IsDisposed)
{
childForm.鏇存柊鏁版嵁("鑰佹澘鎵撻挶浜嗭紒");
}
馃毃鈥?strong>鈥嬮闄╂彁绀衡€?/strong>鈥嬶細灏卞儚鎶婂闂ㄩ挜鍖欑粰閭诲眳锛屾柟渚夸絾鏈夊畨鍏ㄩ殣鎮?/p>
鎷涘紡鈶?濮旀墭蹇€掑憳锛堟帹鑽愭柟妗堬級
杩欎釜濂楄矾灏卞儚缃戣喘娴佺▼锛氫綘涓嬪崟锛堣Е鍙戜簨浠讹級鈫?蹇€掗€佽揣锛堟墽琛屾柟娉曪級
csharp澶嶅埗// 瀛愮獥浣撹缃?/span> public event Action<string> 閫佽揣浜嬩欢; void 鎸夐挳鐐瑰嚮鏃?) { 閫佽揣浜嬩欢?.Invoke("鎮ㄧ殑绋嬪簭鐚垮鍗栧埌浜嗭紒"); } // 涓荤獥浣撶鏀?/span> childForm.閫佽揣浜嬩欢 += (鍖呰9) => { textBox1.Text = 鍖呰9 + "馃摝"; };
鉁呪€?strong>鈥嬩紭鍔库€?/strong>鈥嬶細瀹屽叏瑙h€︼紝瀛愮獥浣撴牴鏈笉鐭ラ亾涓荤獥浣撳瓨鍦?/p>
鎷涘紡鈶?涓棿鍟嗚禋宸环锛堥潤鎬佺被鏂规锛?/h4>
csharp澶嶅埗public static class 椹跨珯
{
public static Form 涓荤獥浣撲粨搴?
}
// 涓荤獥浣撳垵濮嬪寲鏃?/span>
椹跨珯.涓荤獥浣撲粨搴?= this;
// 瀛愮獥浣撹皟鐢?/span>
(椹跨珯.涓荤獥浣撲粨搴?as MainForm)?.鏇存柊鐣岄潰("瀵勫瓨鐨勫揩閫掕鍙栦欢");
public static class 椹跨珯
{
public static Form 涓荤獥浣撲粨搴?
}
// 涓荤獥浣撳垵濮嬪寲鏃?/span>
椹跨珯.涓荤獥浣撲粨搴?= this;
// 瀛愮獥浣撹皟鐢?/span>
(椹跨珯.涓荤獥浣撲粨搴?as MainForm)?.鏇存柊鐣岄潰("瀵勫瓨鐨勫揩閫掕鍙栦欢");
鈿狅笍鈥?strong>鈥嬩娇鐢ㄥ満鏅€?/strong>鈥嬶細閫傚悎璧跺伐涓存椂鏂规锛岄暱鏈熼」鐩厧鐢紒
馃搳涓夊ぇ鏂规瀵规瘮琛?/h3>
鍏紑璋冪敤 | 濮旀墭浜嬩欢 | 闈欐€佺被涓浆 | |
---|---|---|---|
瀹夊叏鎬?/td> | 鈽呪槄鈽嗏槅鈽?/td> | 鈽呪槄鈽呪槄鈽?/td> | 鈽呪槄鈽呪槅鈽?/td> |
鑰﹀悎搴?/td> | 钘曟柇涓濊繛 | 瀹屽叏鍒嗙 | 鏆椾腑鍕剧粨 |
涓婃墜闅惧害 | 骞煎効鍥?/td> | 澶у鐢?/td> | 楂樹腑鐢?/td> |
缁存姢鎴愭湰 | 瀹规槗鐖嗙偢 | 鐪佸績 | 瀹氭椂鐐稿脊 |
馃殤鎬ユ晳鎸囧崡锛氭姤閿欐椂鍏堟煡杩?鐐?/h3>
- 瀛愮獥浣撳疄渚嬫槸涓嶆槸null浜嗭紵锛堢┖寮曠敤鎶ラ敊鍗?7%锛?/li>
- 鎺т欢鏄笉鏄法绾跨▼璁块棶浜嗭紵锛堣寰楃敤Invoke锛?/li>
- 浜嬩欢鏈夋病鏈夋纭粦瀹氾紵锛堟柊鎵嬪父婕忓啓+=锛?/li>
- 绐椾綋鏄笉鏄凡缁廌ispose浜嗭紵锛堝叧闂悗瑕佸強鏃剁疆null锛?/li>
- 璁块棶淇グ绗﹀涓嶅锛燂紙public蹇樺啓鐩存帴鍑夊噳锛?/li>
馃捈涓汉绉佹埧缁忛獙
鍦ㄥ甫杩囩殑15涓猈inForm椤圭洰涓紝鈥?strong>鈥嬪鎵樻柟妗堚€?/strong>鈥嬬殑鍚庢湡缁存姢宸ヤ綔閲忔瘮鐩存帴璋冪敤灏?4%锛佹湁涓湡瀹炴渚嬶細鏌愪粨搴撶鐞嗙郴缁熸渶鍒濈敤鍏紑璋冪敤锛岀粨鏋滄瘡娆℃敼闇€姹傞兘瑕侀噸鍐?0%鐨勭獥浣撲氦浜掍唬鐮侊紱鏀圭敤濮旀墭浜嬩欢鍚庯紝鍚屾牱闇€姹傛敼鍔ㄥ彧闇€璋冩暣5%鐨勪唬鐮侀噺銆?/p>
鏈€鍚庤鍙ュぇ瀹炶瘽锛氣€?strong>鈥嬪埆杩芥眰鎵€璋?鏈€浼樿В"锛佲€?/strong>鈥?灏忓伐鍏风敤鍏紑璋冪敤蹇€熷嚭娲伙紝姝g粡椤圭洰鐢ㄥ鎵樹簨浠讹紝鐗规畩鍦烘櫙鐢ㄩ潤鎬佷腑杞€斺€旇浣忥紝鑳借窇璧锋潵鐨勪唬鐮佹墠鏄ソ浠g爜锛侊紙褰撶劧瑕佽兘绋冲畾璺戝晩鍠傦紒锛?/p>
本文由嘻道妙招独家原创,未经允许,严禁转载