它不起作用,标签只会返回其默认值。您认为这是什么问题?
好的,这是我的代码:
其实我在这里使用mysql作为我的数据库
这是生成标签值的表单:
Private Sub ProfileControl_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Try
Dim conn As New MySqlConnection(ServerString)
Dim dap As New MySqlDataAdapter("select * from employee where LogInID = '" & Main.ID.Text & "'", conn)
Dim dt As New DataTable
dap.Fill(dt)
employeenum = dt.Rows(0).Item("EmployeeID")
position = dt.Rows(0).Item("Position")
employeename = dt.Rows(0).Item("FirstName") + " " + dt.Rows(0).Item("LastName")
lblemployeename.Text = employeename
lblemployeenum.Text = employeenum
EmpPosition.Text = position
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
这是将检索3个标签的值的表单。
Private Sub addsavebutton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles addsavebutton.Click
Dim profile As New ProfileControl
If txtbranchname.Text <> "" Then
If addsavebutton.Text = "ADD" Then
Dim zero As Integer = 0
Dim SQLStatement As String = "INSERT INTO branch(BranchName,Centers)VALUES('" & txtbranchname.Text & "','0') "
SaveCenter(SQLStatement)
logdate = Convert.ToDateTime(Date.Now).ToString("yyyy-MM-dd hh:mm:ss")
logdate2 = Format(Date.Now, "yyyy-MM-dd")
status = "Added Branch " + txtbranchname.Text
SQLStatement = "INSERT INTO log(EmployeeID,Name,EmployeePosition,Date,DateTime,Status)VALUES('" & profile.lblemployeenum.Text & "','" & profile.lblemployeename.Text & "','" & profile.EmpPosition.Text & "','" & logdate2 & "','" & logdate & "','" & status & "' )"
Savelog(SQLStatement)
txtbranchname.Clear()
ElseIf addsavebutton.Text = "SAVE" Then
Dim Query As String
Dim con As MySqlConnection = New MySqlConnection(ServerString)
con.Open()
Query = "UPDATE branch SET BranchName = '" & txtbranchname.Text & "' WHERE BranchCode = '" & txtbranchcode.Text & "'"
Dim cmd As MySqlCommand = New MySqlCommand(Query, con)
Dim i As Integer = cmd.ExecuteNonQuery()
If (i > 0) Then
'success
Dim Successtext As New MsgSuccess
Successtext.PassedText = "Record is Successfully Updated"
Successtext.ShowDialog()
Dim SQLStatement As String
logdate = Convert.ToDateTime(Date.Now).ToString("yyyy-MM-dd hh:mm:ss")
logdate2 = Format(Date.Now, "yyyy-MM-dd")
status = "Updated Branch: " + txtbranchcode.Text + ", " + txtbranchname.Text
SQLStatement = "INSERT INTO log(EmployeeID,Name,EmployeePosition,Date,DateTime,Status)VALUES('" & profile.lblemployeenum.Text & "','" & profile.lblemployeename.Text & "','" & Main.lbldate.Text & "','" & logdate2 & "','" & logdate & "','" & status & "' )"
Savelog(SQLStatement)
srchTextBox.Clear()
con.Close()
Else
'error
Dim Errortext As New Msgerror
Errortext.PassedText = "Record is not Updated"
Errortext.ShowDialog()
End If
End If
Else
Dim Errortext As New Msgerror
Errortext.PassedText = "All Entries with * must be filled"
Errortext.ShowDialog()
End If
End Sub
答案 0 :(得分:1)
首先,在form1中创建form2的实例。
Dim secondform As New Form2
在您的form2上,转到三个标签的“修饰符”属性并将其更改为公开。
然后,您可以在form1中设置变量以获取标签的值,如下所示;
Dim a As String = secondform.lblemployeename.Text
Dim b As String = secondform.lblemployeenum.Text
Dim c As String = secondform.lblEmpPosition.Text
这应该使'a','b'和'c'成为标签的价值
答案 1 :(得分:0)
只需添加表单名称中的控件:
Form2.lblemployeename.Text
Form2.lblemployeenum.Text
Form2.lblEmpPosition.Text
对我来说,在带有VS2005的VB.NET 2.0中,创建了控件Friend
。检查表单设计器并将控件放在Public
或Friend
(如果需要,请With Events
),以便从其他表单中使用它们。
答案 2 :(得分:0)
您似乎正在创建表单实例(Dim profile As New ProfileControl
),然后尝试访问其控件值。你有没有创建ProfileControl
吗?
无论如何,如果ProfileControl
是表单,Load
事件只会在表单加载时显示(当您显示表单时),因此标签的值不会被加载。
如果您已经显示该表单,请不要创建该实例并使用您显示的表单名称来访问标签。
如果您没有显示表单,则应考虑在其他变量中创建该值,然后将其分配给标签或创建自己的类等。