关于如何操作其他窗体的控件或变量的方法

变量|控件

关于如何操作其他窗体的控件或变量的方法!

其实解决的方法有很多,在这里只做简单的总结。对于其他方法,请多指教!

1. 定义全局变量

其实这个方法比较简单也很好理解,我们只要在一个module里面定义了两个全局变量就可以了。

例如:public frm1 as new form1()

Public frm2 as new form2()

这样,我们无论在哪里想访问就很容易了。但是,这样做会耗费比较多的系统资源。一般来说不要使用全局变量。

2. 使用shared 前缀

使用了shared定义的字段(变量)或者属性可以被其他窗体调用。

例如:(假设有窗体form1 和 form2 )

在form1中写入:

Public Shared m_add As String ‘这样我们在form1的任何地方都可以更改m_add的值

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

m_add = "111"

End Sub

在form2中写入:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

MessageBox.Show(Form1.m_add) ‘显然我们可以得到form1的这个变量了

End Sub

注意:使用shared时,不用定义实例,被定义成shared的变量或属性在所有的实例中都是一个值。就象上面的例子中使用Form1.m_add一样。所以如果是打开很多的同一个窗体的实例时,该值不变化,可以用来记录打开的实例数量。

3.这种方法传递一个窗体实例过去,这样就可以获得该实例的变量与属性了。当然也可以对他们进行操作。

例如:在form1中

Dim frm As New Form2(me)

frm.Show()

在form2中:

Dim m_parent as form1

Public Sub New(ByVal sender As Object)

MyBase.New()

'该调用是 Windows 窗体设计器所必需的。

InitializeComponent()

M_parent=ctype(sender,form1)

'在 InitializeComponent() 调用之后添加任何初始化

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

m_parent.textbox1.text = "1111"

End Sub

注意:这种方法可以很方便的获得和使用另一个窗体的变量和控件,是一个不错的选择。如果我们只是想从form1获得一些变量或属性的值的话,可以直接传递变量或属性过去,而不是窗体的实例。

时间: 2024-11-01 18:10:21

关于如何操作其他窗体的控件或变量的方法的相关文章

关于如何操作其他窗体的控件或变量的方法!

变量|控件 关于如何操作其他窗体的控件或变量的方法!其实解决的方法有很多,在这里只做简单的总结.1.  定义全局变量其实这个方法比较简单也很好理解,我们只要在一个module里面定义了两个全局变量就可以了.例如:public frm1 as new form1()      Public frm2 as new form2()这样,我们无论在哪里想访问就很容易了.但是,这样做会耗费比较多的系统资源.一般来说不要使用全局变量.2.  使用shared 前缀使用了shared定义的字段(变量)或者属

用 Windows 窗体 DataGrid 控件验证输入

datagrid|window|控件 Windows 窗体 DataGrid 控件验证输入 Windows 窗体 DataGrid 控件有两种可用的输入验证类型.如果用户试图输入一个值,而该值具有单元格不可接受的数据类型(例如,向需要整数的单元格中输入一个字符串),则新的无效值将替换为旧值.这种输入验证是自动完成的,不能进行自定义. 另一种的输入验证可用于拒绝任何不可接受的数据,例如,在必须大于或等于 1 的字段中输入 0,或者一个不合适的字符串.这是在数据集中通过编写 DataTable.Co

(论坛答疑点滴)如何在一个用户控件内操作另外一个用户控件的中的控件?

控件 比如一个论坛,上面一个top用户控件用来登陆,下面一个buttom的用户控件用来显示在线人数,要求登陆以后立即刷新online中的在线人数,就需要在一个用户控件中操作另外一个用户控件中的控件(这2个用户控件都包含在一个页面中) 看过 http://www.cnblogs.com/lovecherry/archive/2005/03/25/125515.html 和 http://www.cnblogs.com/lovecherry/archive/2005/04/11/135543.htm

C++获得其他程序窗体控件中信息的方法

  本文实例讲述了C++获得其他程序窗体控件中信息的方法.分享给大家供大家参考.具体分析如下: 这里演示了获得其他程序窗体控件信息的方法, 用FindWindow API找到文本框句柄,用SendMessage(WM_GETTEXT)获得文本 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 #include <windows.h> BOOL CALLBACK EnumChildPro

wpf-新手求助 我想用WPF实现,在一个窗体点击按钮控制另窗体的控件运动

问题描述 新手求助 我想用WPF实现,在一个窗体点击按钮控制另窗体的控件运动 ship是Mainwindow中的控件名称,然后在这里报错: this.ship.BeginAnimation(TranslateTransform.XProperty, dax); this.ship.BeginAnimation(TranslateTransform.YProperty, day); 错误:"运动.Window1"不包含"ship"的定义,并且找不到可接受类型为&quo

不同身份登入主窗体,主窗体的控件某些可用某些不可用

问题描述 我是新手,我想要实现的是,用不同的身份登入主窗体,主窗体的控件可用性改变比如说:以"用户"身份登入,主窗体的"会员管理"按钮的visible变为flase如果是以"管理员"身份登入,主窗体的"会员管理"按钮的isible就变为true我是新手,我想要代码,网上找了好久都找不到合适的.各位帮帮忙 解决方案 解决方案二:对不起很难帮到你了.你要的代码取决于你现有的代码.这东西也能到网上找合适的.我真服了你了.解决方案三:

控件显示-新手求助,VS调用子窗体时控件莫名其妙不见了

问题描述 新手求助,VS调用子窗体时控件莫名其妙不见了 我的主窗体的控件运行了还在,但调用的子窗体的控件就是不见了,在designer页面里也没有找到错误,快哭了,求拯救啊,还急着交作业...用的是VS2010 解决方案 是不是可见属性没设置正确啊

请问如何在一个新的类里操作Form1窗口的控件

问题描述 请问如何在一个新的类里操作Form1窗口的控件用Form1Formone=newForm1();么?用这个我点不出控件该怎么调用 解决方案 解决方案二:把form1里面的控件的modifer属性改为public解决方案三:使用构造函数将Form1传入这个类就可以对Form1进行操作了.解决方案四:Application["Form1"].Controls["控件名"]解决方案五:你的新类如果和你得应用程序不在同一个项目,要添加本项目的引用或通过反射调用解决

求:C++.net的窗体和控件,跟MFC有什么区别和联系(for VBer,Delphier)

问题描述 我原来学过VB6,后来学Delphi6.现在学习多媒体DirectxShow时发现多数用C,软件公司也大多招聘C/C++程序员,我也准备学C了,艺多不压身.我现在安装了vs2005,有一本书叫<VisualC++.NET程序设计入门>(带光盘).我想主要通过跟VB和Delphi的比较来理解.1.好像C++.net也有窗体和控件,跟MFC有什么区别和联系?2.尽管MFC也可以用代码建窗体和控件,但毕竟不是Visual,怎么成了VC的重要部分了呢?3.vs2005可以建立项目:"