 |
|
การส่งข้อมูลข้าม form ของ listbox อ่ะครับผม หาข้อมูลใน เน็ตแล้ว ทำตาม มันก็ยังไม่ได้อยู๋ดี |
|
 |
|
|
 |
 |
|
ประมาณนี้ครับ
Code (C#)
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click_1(object sender, EventArgs e)
{
Form2 f = new Form2();
f.strVal = listBox1.Text;
f.Show();
}
}
Code (C#)
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
public string strVal = string.Empty;
private void Form2_Load(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
label1.Text = strVal;
}
|
 |
 |
 |
 |
Date :
2014-12-27 11:43:41 |
By :
mr.win |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เอาใหม่ๆ
คือ ผมเข้าใจแบบนี้นะ
Code (C#)
Form2 f = new Form2();
f.Show();
// อันนี้ผมเข้าใจว่า คือการเรียกForm ใหม่ ของ Form2 เรื่อยๆ เช่นถ้าใส่ไว้ในปุ่ม มันก็จะเรียก Form2 ออกมาหลาย Form ได้ ถูกไหมครับ
//ซึ่งถึงมันจะเป็น Form2 เหมือนกันแต่ก็คือคนละ Form อยู่ดีถูกไหมครับ
//แต่
//ในกรณีของผมคือ ใช้ Form2 เก่า สั่งให้ Label1 ของForm1 ทำงาน
//ถ้าผมใช้
Form2 f = new Form2(); //มันก็คือ การเรียกค่าจาก Form2 ใหม่ที่ไม่ใช่ Form2 ที่ผมเปิดอยู่ ถูกไหมครับ
// ผมอยากได้ค่าจาก Form2 เดิมอ่ะครับ เพราะว่า มันต้องเลือกรายการจาก listbox ของ Form2 ก่อนมันถึงจะส่งค่าออกไปได้
//เพราะโดยปกติแล้วเมื่อเปิด Formขึ้นมาใหม่ รายการใน listbox มันยังไม่ได้เลือก ถูกไหมครับ
//ถึงเราใช้ Form2 f = new Form2(); แบบนี้ มันก็เรียกค่าไม่ได้อยู่ดี เพราะ ค่าเริ่มต้น ของ Form คือ ไม่ได้เลือกรายการใน Listbox
|
 |
 |
 |
 |
Date :
2014-12-27 12:29:05 |
By :
Easy123 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (C#)
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
Form2 f = new Form2();
private void button1_Click_1(object sender, EventArgs e)
{
f.strVal = listBox1.Text;
f.Show();
}
}
Code (C#)
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
public string strVal = string.Empty;
private void Form2_Load(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
label1.Text = strVal;
}
|
 |
 |
 |
 |
Date :
2014-12-27 13:42:14 |
By :
lamaka.tor |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ปัญหานี้แก้ง่ายมากครับ ถ้าคุณเข้าใจพื้นฐานของ OOP ครับ
Form1 (C#)
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Form2 frm2 = new Form2();
frm2.lblForm1 = label1;
frm2.Show();
}
}
Form2(C#)
public partial class Form2 : Form
{
public Label lblForm1 = null;
public Form2()
{
InitializeComponent();
}
private void Form2_Load(object sender, EventArgs e)
{
listBox1.Items.Add("1");
listBox1.Items.Add("2");
}
private void button1_Click(object sender, EventArgs e)
{
lblForm1.Text = listBox1.Text;
}
}
อธิบายดังนี้ :
1. ที่คลาส Form2 สร้างตัวแปรคลาส Label มารองรับ Label Object ของ Form1 ครับ
2. เมื่อเกิดเหตุการณ์ button1_Click ของ Form1 ก็จะสั่งให้เอา Label Object ไปเก็บไว้ที่ตัวแปรของ Form2 ก่อนนะครับ
3. เมื่อ Form2 เลือกค่าใน Listbox เสร็จแล้ว เกิดเหตุการณ์ button1_Click ของ Form2 ก็จะสั่งให้ค่าใน Listbox ไปแสดงใน Property Text ของ Label ของ Form1 ครับ

|
ประวัติการแก้ไข 2014-12-31 00:38:38
 |
 |
 |
 |
Date :
2014-12-31 00:38:00 |
By :
01000010 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|