public partial class UserControl1 : UserControl
{
public UserControl1()
{
InitializeComponent();
}
public void button1_Click(object sender, EventArgs e)
{
Form1 f1 = new Form1();
f1.label1.Text = "Hello";
}
หน้า Form Code (C#)
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
var user1= new UserControl1();
this.panel1.Controls.Add(user1);
}
ถ้าผมเขียนว่าเมื่อกดปุ่มบน UserControl แล้วให้ Form.show ข้อมูลจะสามารถไปแสดงที่ Label บน Form ได้ แต่มันจะเปิด Formใหม่ซ้อนขึ้นมา
แต่ถ้าไม่เขียน Form1.show label บน Form จะไม่แสดงเหมือนกับมันไม่ถูกรีเฟรชน่ะครับ
คือผมต้องการให้ข้อมุลมันมาแสดงเลยโดยที่ไม่ต้องเปิดฟอร์มซ้อนขึ้นมาน่ะครับ
public partial class UserControl1 : UserControl
{
public UserControl1()
{
InitializeComponent();
}
public string testWord = "Hello Wold";
public event EventHandler ButtonClick
{
add { this.button1.Click += value; }
remove { this.button1.Click -= value; }
}
}
ส่วนหน้า form ก็เรียกใช้ event ButtonClick
Code (C#)
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void userControl11_ButtonClick(object sender, EventArgs e)
{
label1.Text = userControl11.testWord; //รับค่ามาใช้งาน
}
}
Date :
2018-06-07 08:33:47
By :
lamaka.tor
No. 2
Guest
ลองทำตามนี้นะครับ
#Form1 Code (C#)
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
var user1= new UserControl1();
this.panel1.Controls.Add(user1);
}
public void showIsNameFormActive(string _name)
{
this.Text = _name;
}
}
#แก้ไข Class Program ตรงนี้สำคัญหน่อย เนื่องจากเราจะมาแก้ไขและสั่งรัน From Code (C#)
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Globalization;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
//อย่าลืมแก้ไขเป็นของตัวเองเด้อ หรือจะ copy แค่
namespace AUT_Kiosk_QC
{
static class Program
{
//เพิ่มตรงนี้
public static Form1 main ;
/// <summary>
/// The main entry point for the application.
/// </summary>
///
[STAThread]
static void Main()
{
//แค่ตรงนี้
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
main = new Form1();
main.Show();
Application.Run();
}
}
}
#User Control ตรง Event Click เด้อ Code (C#)
public void button1_Click(object sender, EventArgs e){
Program.main.showIsNameFormActive("สิงึดติ");
}
#อย่าลืมตอนปิด From หลัก ให้เพิ่ม Close นี้เข้าไปนำ
protected override void OnClosing(CancelEventArgs e)
{
base.OnClosing(e);
Application.Exit();
}
หรือเพื่อให้เข้าใจ
#Form1 Code (C#)
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
var user1= new UserControl1();
this.panel1.Controls.Add(user1);
}
public void showIsNameFormActive(string _name)
{
this.Text = _name;
}
protected override void OnClosing(CancelEventArgs e)
{
base.OnClosing(e);
Application.Exit();
}
}
#หลักการตามนั้น ให้ทำความเข้าใจเอง เราสามารถสั่งกด ปุ่มไหนของ From หลักก็ได้หรือสั่งทำอะไรก็ได้
เพียงเขียนเป็น public เท่านั้น
Date :
2018-06-07 10:43:59
By :
บัญดิษฐ
No. 3
Guest
ขอโทษทีครับ เขียนผิดเดียว From เดียว Form Query กับ C# ป่นกัน 555 ขอโทษหลายๆๆ