我用vb.net做了两个窗口,在第一个窗口main中public str as new string,然后就在第一个窗口的main_load下编程让str=“小陶”, 为什么在第二个窗口引用不了str, 我用msgbox(main.str) 测试 显示为空()
详细的过程是用reader(oledbdatareader)方法读取数据库中的值, str=reader.item("实名"),在第一个窗口,也就是main中用msgbox(str) 会显示 “小陶”,第二个窗口中为什么不行,是我还有什么没做好吗?
------解决方案--------------------
不知道你的代码怎么写的...form1的代码如下,其它的form是可以通过 form1.str 取值的
Public Class Form1
Public str As String
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
str = "我是form1的变量"
End Sub
End Class
------解决方案--------------------
直接定义变量就行了,不用new,这样应该在第二个窗体里面能取到值得呀!
//第一个窗体 Form1
Public str As String
//第二个窗体 Form2
Form1.str
------解决方案--------------------
form1中:
Public f As Form1
Public str As String = "aaaa"
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
f = Me
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim m As New Form2
m.Show()
Me.Hide()
End Sub
form2中:
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim s As String = Form1.f.str
End Sub