NET中窗体间相互访问的几种方式

NET中窗体间相互访问的几种方式

ID:37861148

大小:55.00 KB

页数:8页

时间:2019-06-01

NET中窗体间相互访问的几种方式_第1页
NET中窗体间相互访问的几种方式_第2页
NET中窗体间相互访问的几种方式_第3页
NET中窗体间相互访问的几种方式_第4页
NET中窗体间相互访问的几种方式_第5页
资源描述:

《NET中窗体间相互访问的几种方式》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、.NET中窗体间相互访问的几种方式 在我们的程序中,窗体之间经常要相互访问彼此的成员,调用彼此的方法,或者激发彼此的事件。下面就我的经验,简单谈谈在.NET中窗体间相互访问的几种方式。 以下给出了C#.NET和VB.NET的示例代码。用Form1、Form2类分别表示主、从窗体。 1、内部成员访问法,适合于主窗体访问它所创建的从窗体对象中的成员。只需将从窗体允许主窗体访问的那些成员加上internal或Friend限定符。例如:C#主privatevoidShowForm2Info(){  Form2f2=newFor

2、m2();  f2.Show();  MessageBox.Show(f2.MyName);}C#从internalstringMyName="AForm2Object";VB主PrivateSubShowForm2Info()  Dimf2AsNewForm2  f2.Show()  MsgBox(f2.MyName)EndSubVB从FriendMyNameAsString="AForm2Object" 2、将以上方法反过来用,让从窗体访问创建它的主窗体中的成员,需要增加一个步骤:在从窗体的构造函数中传入一个主窗体

3、的引用,以便找到创建它的主窗体(新建的构造函数中不要忘了调用InitializeComponent()函数)。主窗体创建从窗体对象时传入自身的引用。例如:C#主privatevoidShowForm2(){  Form2f2=newForm2(this);  f2.Show();} internalstringMyName="AForm1Object";C#从privateForm1f1;publicForm2(Form1_f1){  InitializeComponent();  f1=_f1;} privatevo

4、idShowForm1Info(){  MessageBox.Show(f1.MyName);}VB主PrivateSubShowForm2()  Dimf2AsNewForm2(Me)  f2.Show()EndSub FriendMyNameAsString="AForm1Object"VB从Privatef1AsForm1PublicSubNew(ByVal_f1AsForm1)  MyBase.New()  InitializeComponent()  f1=_f1EndSub PrivateSubShowFo

5、rm1Info()  MsgBox(f1.MyName)EndSub 3、从窗体访问主窗体中的成员,如果主窗体只有一个实例,或者被访问对象是全局性的,可以将主窗体中要求访问的成员设置为静态的,加上static或Shared限定符即可:C#主privatevoidShowForm2(){  Form2f2=newForm2();  f2.Show();} internalstaticstringMyName="AForm1Object";C#从privatevoidShowForm1Info(){  MessageBox

6、.Show(Form1.MyName);}VB主PrivateSubShowForm2()  Dimf2AsNewForm2()  f2.Show()EndSub FriendSharedMyNameAsString="AForm1Object"VB从PrivateSubShowForm1Info()  MsgBox(Form1.MyName)EndSub 4、还可以运用.NET的事件委托机制,实现更加灵活的相互调用。下例是从窗体激发主窗体的事件。事件委托机制的功能事实上远比此例强大,大家可以找书看看它的详细用法。C#

7、主privatevoidShowForm2(){  Form2f2=newForm2();  f2.Show();  f2.SendMessage+=newForm2.DelegateOfSendMessage(ShowMessage);} privatevoidShowMessage(stringstr){  MessageBox.Show(str);}C#从publicdelegatevoidDelegateOfSendMessage(stringstr);publiceventDelegateOfSendMess

8、ageSendMessage; privatevoidSend(){  SendMessage("AMessageFromForm2");}VB主PrivateSubShowForm2()  Dimf2AsNewForm2  f2.Show()  AddHandlerf2.SendMessage,AddressOfShowMess

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。