Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim frm As Form2 = New Form2(TextBox1.Text)
frm.Show()
Me.Hide()
End Sub
End Class
ในform2 เขียน code แบบนี้
Code (VB.NET)
Public Class Form2
Friend Shared strtextbox As String
Public Sub New(ByVal strTextBox As String)
InitializeComponent()
Label1.Text = strTextBox
End Sub
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Label3.Text = strtextbox
End Sub
End Class
1.ผมมีคำถามว่า ใน form2 เวลาที่ ใช้คำสั่ง Label3.text = strtextbox ภายใต้ Private Sub Form2_load (ดังที่แสดงข้างบนนี้) ทำไมถึงไม่แสดงค่าของข้อมูลstrTextBox ออกมา แต่ภายใต้ Public Sub New (คำสั่ง Label1.Text = strTextBox) ค่าของ strtextbox แสดงออกมาที่ Label1.text
2.ที่ผมอยากรู้คือว่า ผมต้องการนำค่าที่ส่งผ่านมาจาก form1 ไปใช้ใน form2 เวลาที่ form 2 ถูก load ขึ้นมา ผมต้องแก้ไขอย่างไร ใน code ของผมนี้
ผมตั้งตัวแปรใหม่ขึ้นมา ชื่อว่า getstringhere แล้วนำไปใส่ใว้ใน form ที่ 2
ภายใต้ Public Sub New ผม set getstringhere = strTextBox
และภายใต้ Private Sub Form2_load ก็ สั่งแสดงค่า getstringhere ออกมาได้ถูกต้อง ตามตัวอย่างข้างล่าง
Code (VB.NET)
Public Class Form2
Friend Shared strtextbox As String
Dim getstringhere As String
Public Sub New(ByVal strTextBox As String)
InitializeComponent()
Label1.Text = strTextBox
getstringhere = strTextBox
End Sub
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Label3.Text = getstringhere
End Sub
End Class
มันเป็นเรื่องธรรมดาครับ
ตัวแปรตัวนี้
Friend Shared strtextbox As String
กับตัวที่ประกาศที่นี่ มันคนละตัวกัน
Public Sub New(ByVal strTextBox As String)
ทำอย่างที่เขียนไว้ตาม Post#2 นั่นแหละถูกแล้ว
Code (VB.NET)
Public Class Form2
Friend Shared strtextbox As String
Public Sub New(ByVal strTextBox As String)
InitializeComponent()
Label1.Text = strTextBox ' strTextBox ตัวนี้ คือตัวที่อยู่ Public Sub New(ByVal strTextBox As String)
End Sub
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Label3.Text = strtextbox ' strtextBox ตัวนี้ คือตัวแปรที่ประกาศไว้ที่นี่ Friend Shared strtextbox As String
End Sub
End Class
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Form2.Label3.Text = Me.TextBox1.Text
End Sub
Date :
2011-06-09 00:24:16
By :
Paladinz
No. 6
Guest
แล้วถ้าต้องการ ย้ายข้อมูลไปครั้งละ หลาย ๆ ข้อมูล จะต้องทำยังครับ
แบบส่งทีละหลาย Text ไปยัง Form2