한 양식에서 다른 양식의 컨트롤에 액세스하는 것이 어려울 수 있습니다. ListBox가 있는 "Form 1"과 SelectedIndex 속성에 액세스해야 하는 "Form 2"라는 두 가지 양식을 고려해 보세요.
싱글톤 패턴을 사용하는 대신 참조 전달을 고려하세요. 한 형태에서 다른 형태로. 이를 통해 둘 사이의 직접적인 통신이 가능합니다.
Form1:
// ... public int MyListBoxSelectedIndex { set { lsbMyList.SelectedIndex = value; } } // ...
Form2:
// ... private Form1 mainForm; // Reference to "Form 1" public AddNewObjForm() { InitializeComponent(); mainForm = new ControlForm(); } public void SomeMethod() { mainForm.MyListBoxSelectedIndex = -1; } // ...
또 다른 접근 방식은 Form1에서 Form2로 참조를 전달하여 Form2가 Form1 Label 컨트롤의 LabelText 속성을 수정할 수 있도록 하는 것입니다.
Form1:
// ... 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; } } } // ...
Form2:
// ... 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) { // ... } } // ...
위 내용은 C#의 다른 양식에서 양식 컨트롤에 액세스하고 수정하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!