Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Mengakses dan Mengubah Suai Kawalan Borang daripada Borang Lain dalam C#?

Bagaimanakah Saya Boleh Mengakses dan Mengubah Suai Kawalan Borang daripada Borang Lain dalam C#?

Barbara Streisand
Lepaskan: 2025-01-07 13:41:41
asal
993 orang telah melayarinya

How Can I Access and Modify Form Controls from Another Form in C#?

Mengakses Kawalan Borang daripada Borang Lain

Masalah

Mengakses kawalan daripada satu borang dalam borang lain boleh mencabar. Pertimbangkan dua borang, "Borang 1" dengan ListBox dan "Borang 2" yang perlu mengakses sifat SelectedIndexnya.

Penyelesaian Amalan Terbaik

Daripada menggunakan corak Singleton, pertimbangkan untuk menghantar rujukan dari satu bentuk ke bentuk yang lain. Ini membolehkan komunikasi terus antara mereka.

Contoh

Dalam Borang1:

// ...
public int MyListBoxSelectedIndex
{
    set { lsbMyList.SelectedIndex = value; }
}
// ...
Salin selepas log masuk

Dalam Borang2:

// ...
private Form1 mainForm; // Reference to "Form 1"

public AddNewObjForm()
{
    InitializeComponent();
    mainForm = new ControlForm();           
}

public void SomeMethod()
{
    mainForm.MyListBoxSelectedIndex = -1;
}
// ...
Salin selepas log masuk

Penyelesaian Alternatif dengan Lulus a Rujukan

Pendekatan lain melibatkan menghantar rujukan dari Borang1 ke Borang2, membenarkan Borang2 mengubah suai sifat LabelText Label Borang1 kawalan:

Borang1:

// ...
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        Form2 frm = new Form2(this); // Pass reference to Form2
        frm.Show();
    }

    public string LabelText
    {
        get { return Lbl.Text; }
        set { Lbl.Text = value; }
    }
}
// ...
Salin selepas log masuk

Borang2:

// ...
public partial class Form2 : Form
{
    public Form2()
    {
        InitializeComponent();
    }

    private Form1 mainForm = null;
    public Form2(Form callingForm)
    {
        mainForm = callingForm as Form1; // Cast to Form1
        InitializeComponent();
    }

    private void Form2_Load(object sender, EventArgs e)
    {
        this.mainForm.LabelText = txtMessage.Text; // Modify LabelText
    }

    private void button1_Click(object sender, EventArgs e)
    {
        // ...
    }
}
// ...
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengakses dan Mengubah Suai Kawalan Borang daripada Borang Lain dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan