는 다음 .. 새 프로젝트를 만들려면 어떻게해야합니까 작업 기초를 얻을 수 있습니다. 귀하의 현재 코드, 창 등의 아무 것도 ... 기본 프로젝트는 "Form1"양식을 만들 것입니다 지금 혼자 떠나.
프로젝트에 새 양식을 추가하면 기본적으로 "Form2"로 표시됩니다. 단일 텍스트 상자와 단일 단추를 그 위에 놓습니다. grins 및 개체 이름을 구별하는 명확한 설명을 위해 "txtOnForm2"및 "btnOnForm2"(대문자, 샘플은 읽기 쉽고 "txtonform2"는 모두 소문자)에 Form2의 컨트롤 이름을 변경합니다. 이제 폼에서 마우스 오른쪽 버튼을 클릭하고 "코드보기"를 클릭하십시오. 생성자가있는 다른 "부분 클래스"선언으로 이동합니다.다음 추가에 대한 ... 우리는 다음을 Form1에 코드를 넣으면됩니다 나머지 절반으로
// specifically typecasting the TYPE of form being passed in,
// not just a generic form. We need to see the exposed elements
Form1 CalledFrom;
// Ensure to do the : this() to make sure default behavior
// to initialize the controls on the form are created too.
public Form2(Form1 viaParameter) : this()
{
CalledFrom = viaParameter;
}
private void btnOnForm2_Click(object sender, EventArgs e)
{
CalledFrom.ValuesByProperty = this.txtOnForm2.Text;
MessageBox.Show("Check form 1 textbox");
string GettingBack = CalledFrom.ValuesByProperty;
MessageBox.Show(GettingBack);
CalledFrom.SetViaMethod("forced value, not from textbox");
MessageBox.Show("Check form 1 textbox");
GettingBack = CalledFrom.GetViaMethod();
MessageBox.Show(GettingBack);
}
저장 오류를 컴파일하고 Form2를 디자이너 및 코드 창을 닫습니다 걱정하지 말아.
이제 Form1을 엽니 다. 하나의 텍스트 상자와 하나의 버튼을 그 위에 놓습니다. 컨트롤의 기본 이름은 각각 "textbox1"및 "button1"입니다. 있는 그대로 그대로 둡니다. 버튼을 두 번 클릭하십시오 (form1). 해당 버튼에 대한 코드 스 니펫이 표시됩니다. 다음 붙여 넣기
private void button1_Click(object sender, EventArgs e)
{
Form2 oFrm = new Form2(this);
oFrm.Show();
}
public string ValuesByProperty
{
get { return this.textBox1.Text; }
set { this.textBox1.Text = value; }
}
public void SetViaMethod(string newValue)
{ this.textBox1.Text = newValue; }
public string GetViaMethod()
{ return this.textBox1.Text; }
이제 양식을 저장하고 실행하십시오. 첫 번째 양식에서 버튼을 클릭하면 두 번째 인스턴스가 이미 생성 된 자체 인스턴스로 호출되며 두 번째 인스턴스는 새로운 자체 인스턴스로 호출되지 않습니다. 두 번째 양식이 표시됩니다. 둘 다 볼 수 있도록 창을 이동하십시오.
텍스트 상자의 두 번째 창에 텍스트를 입력하고 버튼을 클릭하십시오.오고가는 것의 앞뒤를 따라 가십시오.
정확히 무엇이 작동하지 않습니까? –
@Aaron McIver : 두 번째 양식에 항목을 추가하면 첫 번째 양식의 텍스트 상자에있는 텍스트가 변경되지 않는 것 같습니다. – HelpNeeder