1

Form5 から Form4 にある listBox1 にアイテムを追加しようとしています。私はそれを調査し、このサイトでうまくいくはずの答えを見つけました:

var form = Form.ActiveForm as Form4;
form.listBox1.Items.Add("aaa");

「NullReferenceException」が発生します。それが私が見つけた解決策ですが、なぜそれが機能するのかさえわかりません。Form4 のインスタンスは formfour と呼ばれ、メイン フォームから次のように作成します。

Form4 formfour = new Form4();
formfour.Show();

listBox1 修飾子は public に設定されています。

4

2 に答える 2

3

を取得している理由NullRefereneExceptionは、 currentActiceFormが としてキャストされていないためです。そのため、インスタンスForm4を取得します。nullform

質問から、あなたがForm4開いているように見え、そのフォームをアクティブに設定したい:

プロパティを使用して、次のようなApplication.OpenFormsインスタンスを取得できます。Form4

Form4 form = Application.OpenForms["Form4"] as Form4;
if(form != null)
   form.Focus();

また、既存のフォームのリスト ボックスに項目を追加する場合:

form.listBox1.Items.Add("aaa");
于 2013-03-29T04:52:58.240 に答える
0

Form5 で

   Form4 frm4= new Form4();
   frm4.listbox.Items.Add("aaa"); 
   // make sure that the listbox on form4 is set to public from its properties

form4 の使用を更新するには

   frm4.refresh();

詳細については、このリンクを参照してください

于 2013-03-29T04:51:06.117 に答える