2014-10-09 54 views
-1

我試圖訪問StudentRegistration窗體中的3個文本框和1個標籤。
我通過一個模塊聲明它爲公衆。在一個窗體中的文本框和標籤,並以另一種形式訪問它

Module StudentInfo 

Public student_no As String = StudentRegistration.lblstudentno.Text 
Public lastname As String = StudentRegistration.txtlastname.Text 
Public firstname As String = StudentRegistration.txtfirstname.Text 
Public middlename As String = StudentRegistration.txtmiddlename.Text 

End Module 

我試圖訪問它到另一個窗體,但它不能自動顯示當我加載窗體。
你能幫我嗎?

Private Sub Payment_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 

student_no = lblstudentno.Text 
lastname = lbllastname.Text 
firstname = lblfirstname.Text 
middlename = lblfirstname.Text 

End Sub 
+0

您的變量位於=號的錯誤一側。有更好的方法在表單之間傳遞數據。 – OneFineDay 2014-10-10 00:14:37

+1

@OneFineDay,第二個代碼片段以錯誤的方式傳遞數據。此外,第一個代碼片段將在第一個窗體顯示之前從第一個窗體獲取數據,因此所有控件都將爲空。即使您修復了第二個代碼片段,您在第二種形式中也不會看到任何內容,但您輸入到第一種形式中的任何內容都無法使用該模塊。我建議你閱讀我的博客文章的所有三個部分:http://jmcilhinney.blogspot.com.au/2012/04/managing-data-among-multiple-forms-part.html – jmcilhinney 2014-10-10 00:21:39

+0

這就是我所說的。 – OneFineDay 2014-10-10 00:57:00

回答

0

我試圖重現上面的代碼在Visual Basic中,假設 「付款」 的形式包含名爲lblstudentno,lbllastname,lblfirstname和lblmiddlename四個標籤分別爲(不再lblfirstname ...)。我不反對使用具有模塊級範圍的變量。我同意「OneFineDay」,變量和它們各自的值應該以「付款」形式反過來寫。像下面...

Private Sub Payment_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load 

    lblstudentn.Text = student_no 
    lbllastname.Text = lastname 
    lblfirstname.Text = firstname 
    lblmiddlename.Text = middlename 

End Sub 

此外,我想提一提的是,student_no,姓氏等值改變僅在第一次我寫的文本框裏面的一些文本「StudentRegistration」的形式。相反,在初始化StudentInfo「模塊」的變量,我建議剛聲明的變量在模塊中如下...

Module StudentInfo 

    Public student_no As String 
    Public lastname As String 
    Public firstname As String 
    Public middlename As String 

End Module 

......然後,在一些事件「付款」的形式加載之前,更新變量的值。

Public Class StudentRegistration 

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click 
     student_no = lblstudentno.Text 
     lastname = txtlastname.Text 
     firstname = txtfirstname.Text 
     middlename = txtmiddlename.Text 
     Payment.Show() 
    End Sub 
End Class 

我不確定它是否能在vb.net中運行,但我希望我的意見是有用的!

相關問題