vb.net在自制的窗体控件中弹出一个窗口再返回一个值
例如:正在自制一个控件A,在A中有一个按钮BUTTON1和变量X.按下BUTTON1就会弹出一个已经制作好的WINDOS窗体FROM2,在FROM2中有textbox1,...
例如:正在自制一个控件A,在A中有一个按钮BUTTON1和变量X.按下BUTTON1就会弹出一个已经制作好的WINDOS窗体FROM2,在FROM2中有textbox1,在关闭FORM2时,将textbox1中的值赋给控件A中的变量X.应该怎么写????
不能用MSGBOX哦 展开
不能用MSGBOX哦 展开
2个回答
展开全部
先设计好Form1和Form2。在
Private Class Form2中输入
Public Event ChangeValue(ByVal value As String) '是string还是其它的看你需要了
在Form2的Closed事件:
Private Sub Form2_Closed() Handles Me.Closed
RaiseEvent ChangeValue(TextBox1.Text)'如果是数值类型的话用下面这个:
'RaiseEvent ChangeValue(Val(TextBox1.Text))
End Sub
在Form中定义x:
Dim x As String '是String还是数值类型看你需要了,要和上面的统一
在Form1中写一个处理值的函数。值哪来?别管它
Private Sub ProcessValue(ByVal value As String) '记得统一
x = value
End Sub
在Form1中Button1的Click事件中:
Private Sub Button1_Click() Handles Button1.Click
Dim f2 As New Form2
AddHandler f2.ChangeValue,AddressOf ProcessValue
f2.Show()
End Sub
楼下的更简单啦
Private Class Form2中输入
Public Event ChangeValue(ByVal value As String) '是string还是其它的看你需要了
在Form2的Closed事件:
Private Sub Form2_Closed() Handles Me.Closed
RaiseEvent ChangeValue(TextBox1.Text)'如果是数值类型的话用下面这个:
'RaiseEvent ChangeValue(Val(TextBox1.Text))
End Sub
在Form中定义x:
Dim x As String '是String还是数值类型看你需要了,要和上面的统一
在Form1中写一个处理值的函数。值哪来?别管它
Private Sub ProcessValue(ByVal value As String) '记得统一
x = value
End Sub
在Form1中Button1的Click事件中:
Private Sub Button1_Click() Handles Button1.Click
Dim f2 As New Form2
AddHandler f2.ChangeValue,AddressOf ProcessValue
f2.Show()
End Sub
楼下的更简单啦
追问
真是高手啊!!还有一个问题,我实在没分了.真心感谢你能回答,就是我一个应用程序中加载多个自制控件(x.dll)刚开始运行的时候没有问题.但是在其中一个进入循环的时候,就是其中一个控件卡住的时候,其余的同样控件也会卡住.是怎么回事?可以把每个加载的自制的控件都包装到一个线程里面吗?实现每个控件的独立运行???
展开全部
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Form2.ShowDialog()
If Form2.Textbox1.Text <> "" Then '如果x可以为空的话,那就不需要这句了
x = Form2.Textbox1.Text
End If
End Sub
试试这样写
Form2.ShowDialog()
If Form2.Textbox1.Text <> "" Then '如果x可以为空的话,那就不需要这句了
x = Form2.Textbox1.Text
End If
End Sub
试试这样写
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询