如何在窗体之间通讯的几种方法 ? VB.NET方案 .

在面向过程的程序中,我们可以通过窗体名来访问其他窗体中控件或者数据,但是在面向过程中却稍有不同,面向过程显示了它的优点。


      假设一个Window解决方案中,有两个窗体Form1和Form2,Form1窗体中有一个DataGridView数据控件,如何在Form2中访问DataGridView中数据,即如何实现在这两个窗体之间通讯呢?


      第一种方法

      通过设置Form2窗体的构造函数,改为带参数的构造函数,传入一个对象,在设计模式中经常会传入类或对象,实现了对数据元素的封装,有些人通过传入一些具体参数,如字符串、控件等,无疑这种方式比较局限,扩展性很差,如果Form1中再增加新内容后,还需要改传递参数。


      Private mF_Form As Form1

      更改Form2的构造函数为有参数的

      Public Sub New(ByVal form As Form1)
           MyBase.New()
           '该调用是 Windows 窗体设计器所必需的。
           InitializeComponent()
           Me.mF_Form = form
        
      End Sub


      现在,就可以把Form1对象传入Form2中,这里对Form1的修改也是真正对Form1的修改,因此,也需要谨慎操作。


      在Form1中用到Form2的地方还需要加上一句话:

      Dim form1 As New Form2(Me)

  这是因为Form2的构造函数已经改变,实例化Form2时不再调用默认构造函数,需要我们指明参数,然后,实例化。
      这里的Me指的就是Form1当前的实例,也就是把当前Form1的实例通过Form2的构造函数传递给Form2类,否则出现   “错误对非共享成员的引用要求对象引用”


       第二种方法

       如果我们在Form2中,这样声明:Dim form1 As new Form1 

       我们知道此时form1是一个新的form1实例,不是我们要用的那个,我们只需让这个实例变成我们要用的那个即可。

        form1.Owner=Me

        这样就可以正常通讯了。


        有很多时候为了安全,我们还需要改一个声明级别,因为这样可以对原创题进行更改,很不安全。

        在C#等语言中,方法类型……

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是几种使用vb.net的ColorDialog.ShowDialog方法的实例代码和注释: 1. 基本用法: ``` Dim cd As New ColorDialog() If cd.ShowDialog() = DialogResult.OK Then Me.BackColor = cd.Color End If ``` 这段代码创建了一个ColorDialog实例,并将其显示在屏幕上。当用户选择颜色并单击“确定”按钮时,通过Color属性获取所选颜色,并将其设置为窗体的背景色。 2. 自定义对话框标题和默认颜色: ``` Dim cd As New ColorDialog() cd.AllowFullOpen = True cd.AnyColor = True cd.SolidColorOnly = False cd.Color = Color.Red cd.CustomColors = New Integer() {&HFF0000, &H00FF00, &H0000FF} cd.ShowDialog(Me) Me.BackColor = cd.Color ``` 这段代码创建了一个ColorDialog实例,并将其显示在屏幕上。它还设置了一些属性来自定义对话框的行为,例如允许用户选择任何颜色、允许选择自定义颜色和设置默认颜色为红色。它还设置了一个自定义颜色数组,其中包含三种颜色。最后,通过Color属性获取所选颜色,并将其设置为窗体的背景色。 3. 使用颜色对话框的自定义事件: ``` Dim cd As New ColorDialog() AddHandler cd.FullOpen, AddressOf ColorDialog_FullOpen cd.ShowDialog() Me.BackColor = cd.Color Private Sub ColorDialog_FullOpen(sender As Object, e As EventArgs) Dim cd As ColorDialog = CType(sender, ColorDialog) cd.Color = Color.Black End Sub ``` 这段代码创建了一个ColorDialog实例,并为其FullOpen事件添加了一个自定义事件处理程序。在对话框完全打开时,事件处理程序将颜色设置为黑色。最后,通过Color属性获取所选颜色,并将其设置为窗体的背景色。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值