很多人都苦恼於如何在子表单中 *** 作主表单上的控制项,或者在主表单中 *** 作子表单上的控制项。相比较而言,後面稍微简单一些,只要在主表单中创建子表单的时候,保留所创建子表单物件即可。
下面重点介绍前一种,目前常见的有两种方法,基本上大同小异:
第一种,在主表单类中定义一个静态成员,来保存当前主表单物件,例如:
public static yourMainWindow pCurrentWin = null
然後在主表单构造函数中,给静态成员初始化,如下:
pCurrentWin = this
那麼在子表单中调用父表单,可以通过“主表单类名. pCurrentWin”来 *** 作当前的主表单。
第二种,是在子表单中定义一个私有成员,来保存当前主表单物件,例如:
private yourMainWindow pParentWin = null
然後在子表单构造函数中,加一参数,如下:
public yourChildWindow( yourMainWindow WinMain )
{
pParentWin = WinMain
//Other code
}
在主表单创建子表单的时候,要把this作为参数来构造子表单,这样在子表单中调用父表单,可以直接用“this.pParentWin”就可以了
不过以上所作的,只是让你能够访问当前主表单物件,那麼如何 *** 作控制项,很多人直接修改控制项的成员访问符,即把“private”改为“public”,我觉得这样破坏了本身类的封装,所以我比较喜欢的做法是增加公有属性或方法来供调用,例如:
public string ButtonText
{
get{ return btn.Text}
set{ btn.Text = value}
}
public void Button_Click()
{
this.btnDConvert.PerformClick()//Execute button click
}
1、打开VB6.0,新建一个工程,在窗体中添加一个命令按钮,caption分别改为“调用函数”,将窗体Form1的caption属性改为“VB6.0自定义函数”,将界面设置成下图:
2、双击窗体Form1,进入代码编辑窗口,单击左侧下拉三角形,选择通用。
3、在通用段输入如下代码:
Public Sub F1(n%, ByVal m%)
n = n Mod 10
m = m \ 10
End Sub
并将Form_Load事件删除。
以上代码就定义了函数F1,其中包括两个参数,类型均是整型,%表示 短整型,Byval表明了值传递方式,表示值传递,与地址传递相对应。这也是默认的传递方式。
4、双击“调用函数”命令按钮,进入代码编辑窗口,输入如下代码:
Dim x%, y%
x = 12: y = 34
Call F1(x, y)
Print x, y
yongcall进行函数的调用,参数与自定义函数中参数一一对应。
5、然后关闭代码窗口,按下F5运行程序,单击“调用函数”命令按钮,在窗体中打印输出2 34,可以自己想下为什么是这个结果,这个结果和函数的值传递方式有关,
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)