1

という名前の C# winform がForm1あり、この winform にはリストとボタンがあります。click()ボタンにイベントを追加doubleclick()し、リストにイベントを追加しました。どちらのイベントも同じメソッドを呼び出します: ( form1.designer.cs 内)

this.myList.DoubleClick += new System.EventHandler(this.myMethod);
this.myButton.Click += new System.EventHandler(this.myMethod);

myMethod、次の操作を実行したいと考えています。

  1. kind の新しい winform を開きForm2、アクティブな winform にします。

  2. 呼び出し元の winform (種類Form1) を閉じます。このフォームはもう必要ありません。

私はこのようにしました:( form1.csで)

private void myMethod(object sender, EventArgs e)
{
     Form2 frm = new Form2();                 
     this.dispose();
}

myMethodリストの doubleclick イベントによって呼び出されている場合、myMethod終了時に null ポインター例外が発生します。ボタン クリック イベントによって呼び出されている場合は、正常に動作します。

私も試しthis.close()てみましたが、同じ動作になりました。

私の質問:

  1. myMethodボタンクリックイベントとリストダブルクリックイベントで必要な操作を行うには、どのように適切に記述すればよいですか?

  2. ボタンとリストの違いは何ですか? ボタンでは正しく機能するのに、リストではクラッシュするのはなぜですか?

ありがとう

4

1 に答える 1

1

を非表示にしForm1て表示できForm2ます。これによりForm2 、 close will not closeなどの問題が発生しForm1ます。

this.Hide();
var form2 = new Form2();
form2.ShowDialog();
于 2013-10-01T12:56:41.910 に答える