如何调用另外一个窗体的控件?
现设计程序有两个窗体,按第一个窗体的button控件弹出第二个窗体(这个功能已经实现)
现在的问题是第二个窗体的控件combobox要在第一个窗体上面用该怎么调用啊?
如这段VB的代码是form1的代码,现在想改成.NET的,combo_order是form2的控件,在.NET里面该怎么表示,请高手们帮帮忙吧
Private Sub Cmd_query_Click()
Dim Source_str As String
On Error GoTo Bailout:
form2.Show 1
If Len(querystr) < 3 Then '没有查询条件
Adodc_island.RecordSource = "select * from " + Currenttable + _
IIf(Combo_order.text = "自然序", "", " Order by " + Combo_order.text)
End Sub
问题点数:20、回复次数:11Top
1 楼commandosvvv(UnknownData)回复于 2006-03-03 19:10:24 得分 0
在form1中调用form2的控件是吧?
dim form as form2=form2
form.combo_order.text=........Top
2 楼xiangzhong(刀含梦)回复于 2006-03-03 19:43:00 得分 0
楼主说的ms会有问题,我试过的,还是下面的比较好:
在form1中调用form2中的controls:
在form1中如下进行操作:
Dim mParentForm As form2
Public Property setForm() As form2
Get
Return mParentForm
End Get
Set(ByVal value As fmPropValve)
mParentForm = value
End Set
End Property
在form2中:
dim newForm1 as form1
newForm1.setForm=me
Top
3 楼zh830213()回复于 2006-03-03 21:13:53 得分 0
楼上的那两段代码写在那个事件中啊??FORM1_LOAD 和 FORM2_LOAD中??Top
4 楼xiangzhong(刀含梦)回复于 2006-03-03 22:29:22 得分 0
class form1下面,第一段:
class form2下面,第二段Top
5 楼zhouxiaotan(夜雨悠扬)回复于 2006-03-03 23:09:48 得分 0
如果需要使用的话,只要把Form2中的控件的声明该成public的就可以了
如这样,Public WithEvents TextBox2 As System.Windows.Forms.TextBox
这样你new一个Form2就可以直接使用了Top
6 楼qgqchile(qgq)回复于 2006-03-04 15:33:40 得分 0
你的意思是要取得另外一个FORM里控件的值吧
如果这样的话上面说的没一个可以用的
教你一个最简单的办法
先用VB6 做一个简单的东西,如 TEXTBOX1.TEXT=FORM1.TEXTBOX2.TEXT
这样可以在VB6里运行
然后再用.NET把那个VB6的项目打开,.NET会自动生成代码完成VB6应做的事情
你自己去分析那些代码吧
xiangzhong(刀含梦) 说的靠点铺,但会出错Top
7 楼kingdhy(飞鹰)回复于 2006-03-04 15:57:15 得分 0
有更简单的办法:
Form2 frm=new Form2();
frm.ShowDialog(this);
this.textBox1.Text=frm.Tag.ToString();
在form2里编写事件给Form的Tag赋值:this.Tag=this.TextBox1.Text
Top
8 楼kingdhy(飞鹰)回复于 2006-03-04 15:57:55 得分 0
Form.Tag可以在窗体间传递任意类型的参数。Top
9 楼kingdhy(飞鹰)回复于 2006-03-04 15:58:33 得分 0
有更简单的办法:
Form2 frm=new Form2();
frm.ShowDialog(this);
this.textBox1.Text=frm.Tag.ToString();
在form2里编写事件给Form2的Tag赋值:this.Tag=this.TextBox1.Text
Top
10 楼chenweb(风无声)回复于 2006-03-04 18:27:33 得分 0
将控件或控件值定义为publicTop
11 楼drk928(一起看斜阳)回复于 2006-03-06 17:38:15 得分 0
重载Form2的NEW方法,加上你想传值的参数.
dim C as ComBoBox :dim F as TextBox
Sub New(COmbox as ComBoBox,FieldValue as TextBox)
C=COmbox: F=FiledValue
End Sub
然后在想传值的过程里对
C,F进行传值即可.Top




