C#에서 두 개의 윈도우 폼 사이에 데이터를 전달하고 있습니다. Form1은 form2_textbox &에서 텍스트 상자 (form1_textbox)로 전달 된 텍스트를받는 기본 폼입니다.두 개의 폼간에 속성을 가진 데이터 전달하기
먼저 form1_button을 클릭하면 빈 텍스트 상자와 버튼으로 form1이 열리고 form2가 열립니다. Form2에서 form2_textbox &에 텍스트를 입력 한 다음 button2 (form2_button) 버튼을 클릭합니다.이 버튼의 이벤트를 클릭하면 양식 1의 텍스트 상자에 텍스트가 전송됩니다. & form1은 form2에서받은 텍스트로 빈 form1_textbox로 포커스가 이동합니다.
이 작업을 구현하기 위해 속성을 사용하고 있습니다. FORM2.CS
공공 부분 클래스 형식 2 : 양식 는 { //하는 형태로 2 공개 이벤트 핸들러 SomeTextInSomeFormChanged에서 이벤트를 선언;
public Form2()
{
InitializeComponent();
}
public string get_text_for_Form1
{
get { return form2_textBox1.Text; }
}
//On the button click event of form2, the text from form2 will be send to form1:
public void button1_Click(object sender, EventArgs e)
{
Form1 f1 = new Form1();
f1.set_text_in_Form1 = get_text_for_Form1;
//if subscribers exists
if(SomeTextInSomeFormChanged != null)
{
SomeTextInSomeFormChanged(this, null);
}
}
}
Form1.cs를 Form2를에서
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public string set_text_in_Form1
{
set { form1_textBox1.Text = value; }
}
private void form1_button1_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2();
f2.Show();
f2.SomeTextInSomeFormChanged +=new EventHandler(f2_SomeTextInSomeFormChanged);
}
//in form 1 subcribe to event
Form2 form2 = new Form2();
public void f2_SomeTextInSomeFormChanged(object sender, EventArgs e)
{
this.Focus();
}
}
버튼 1 클릭으로 텍스트 상자 텍스트가 설정됩니다! 아마도 버튼 클릭 핸들러에'form1.Focus()'만 있으면됩니다. – VinayC
[Duplicate 1] (http://stackoverflow.com/questions/13465158/). [Duplicate 2] (http://stackoverflow.com/questions/5087934/). [중복 3] (http://stackoverflow.com/questions/5088213/). [Duplicate 4] (http://stackoverflow.com/questions/9073267/). [중복 5] (http://stackoverflow.com/questions/20186722/). –