2016-07-30 2 views
0

コードの下に試してみました:ループ内の別のフォームからそのフォームの現在のボタンと現在のボタンを開きたいとします。私は最初の形式でコード

int i=0; 
while(i < 5) 
{ 
    this.hide(); 
    form2 obj_form2 = new form2(); 
    obj_form2.show(); 
    i++; 
} 

私はForm2の中にテキストボックスの現在ではいくつかの値を入れて、ボタンの上に、私は5回をForm1にForm2をからそのテキストボックスの値を渡したいクリックする必要があります。上記のコードでは、一度に5つのウィンドウをすべて取得していますが、フォーム2のボタンをクリックすると1つずつ表示されます。

+0

コードを書式設定してください。 –

答えて

-1

はい、whileループを削除し、回あなたはボタンを押す:フォーム2では

private pressimes = 0; 

private void btnOpenForm_Click(object sender, EventArgs e) 
{ 
    this.hide(); 
    form2 obj_form2=new form2(); 
    obj_form2.PassedValue = pressTimes; 
    obj_form2.show(); 
    pressTimes++; 

} 

、追加:

public int PassedValue { set; get; } 

と渡された値として、フォーム内で使用します。それともあなたは、フォーム2のコンストラクタを変更して使用して値を渡すことができます:form2 obj_form2=new form2(pressTimes)

-1

これはあなたのForm1に置くためのコードです:あなたForm2で、今

this.hide(); 
List<string> results = new List<string>(); // List of all the returned results 

for (int i = 0; i < 5; i++) 
{ 
    form2 obj_form2 = new form2(); 
    obj_form2.ShowDialog(); 

    results.Add(obj_form2.textBox.Text); 
} 

this.Show(); 
MessageBox.Show(string.Join("\n", results)); // Show all the results 

、あなたが書いているテキストボックスを見つけます戻り値それを選択し、そのプロパティを見てください。プロパティModifiersを見つけ、publicに設定します。

このコードは機能するはずです。私はこれが役立つことを願っています

あなたはまたForm2にこの機能を追加することができます

EDIT:この

this.hide(); 
List<string> results = new List<string>(); // List of all the returned results 

for (int i = 0; i < 5; i++) 
    results.Add(form2.GetInput()); 

this.Show(); 
MessageBox.Show(string.Join("\n", results)); // Show all the results 

に前述のコードを

public static string GetInput() 
{ 
    form2 obj_form2 = new form2(); 
    obj_form2.ShowDialog(); 

    return obj_form2.textBox.Text; 
} 

を、変更はまだ前に述べたModifiersプロパティを変更してください

関連する問題