2016-08-11 11 views
-1

私の問題は非常に簡単です。私はform1にコンボボックスを持っています。追加する新しい項目をテキストボックスに書き込むためにform2を開くボタンがあります。ここに私のコード: をForm1:2番目のフォームのコードでコンボボックスに項目を追加する

public static string new_item; 
private void btn1_Click(object sender, EventArgs e) 
    { 

     Form2 f2= new Form2(); 
     f2.ShowDialog(); 
    } 

のForm2:

private void btn1_Click(object sender, EventArgs e) 
    { 
     Form1.new_item = textBox1.Text; 
     combobox.Items.Add(new_item); 
     this.Close(); 
    } 

しかし、新しいアイテムは、私のcomoboboxに追加されません。 私はコンボボックスをリフレッシュしようとしましたが、私は同じ結果を持っています。 ありがとうございます。

答えて

3

あなたはForm2を閉じた後、あなたのComboBoxに項目を追加する必要があります。

public static string new_item; 
private void btn1_Click(object sender, EventArgs e) 
{ 
    Form2 f2= new Form2(); 
    f2.ShowDialog(); 
    comboBox1.Items.Add(new_item); //this is missing in your code 
} 

しかし、より良い方法が戻って文字列を渡すのForm2にパブリックプロパティを作成することになります。

public string Value { get; set; } 

private void btn1_Click(object sender, EventArgs e) 
{ 
    this.Value = textBox1.Text; //pass the TextBox value to the property 
    this.DialogResult = DialogResult.OK; // Cancel would mean you closed/canceled the 
             // form without pressing OK-Button (btn1) 
    this.Close(); 
} 

Form1よりプロパティにアクセスして新しい項目を追加できます。

private void btn1_Click(object sender, EventArgs e) 
{ 
    Form2 f2= new Form2(); 
    if(f2.ShowDialog() == DialogResult.OK) //check the result 
    { 
     comboBox1.Items.Add(f2.Value);//Add the new item 
    } 
} 
+1

あなたは 'ます。private void btn1_Click'で間違った行を得た: ' Form1.new_item = textBox1.Text; ''値= textBox1テキストボックスでなければなりません.Text' – zockDoc

+0

@zockDocありがとうございます。それを私が直した。 – Koopakiller

+0

それはKoopakillerだ、私はこの 'comboBox1.Items.Add(new_item);をプットした'間違った場所にいます。ありがとうございます! –

1

コンボの名前がcomboboxであると仮定します。

をForm1:

private void btn1_Click(object sender, EventArgs e) 
{ 

    Form2 f2= new Form2(); 
    if (f2.ShowDialog() == DialogResult.OK) 
     combobox.Items.Add(f2.ItemValue); 
} 

のForm2:

public string ItemValue {get {return textBox1.Text;} }; 

private void btn1_Click(object sender, EventArgs e) 
    { 
     Form1.new_item = textBox1.Text; 
     this.DialogResult = DialogResult.OK; 
    } 
関連する問題