5

データベースからデータがロードされた DataGridView があります。各行には「表示」ボタンがあり、それをクリックすると、特定の情報を含む別のフォームが開かれますが、DataGridView を含むメイン フォームはまだ開かれています。私はこのコードでこれを行います:

FormView fr = new FormView(id);
fr.ShowDialog();

問題は、フォーカスがまだ最初に開いた FormView にあるため、同時に複数の FormView を開くことができないことです。これどうやってするの?

4

4 に答える 4

5

フォームで ShowDialog を使用すると、DialogeResult タイプの応答が表示されて待機しますが、フォームを表示するだけで応答が必要ない場合は、単純に form.Show() を呼び出すことができます
。コードは次のとおりです。

結果が必要な場合:

Form f = new Form(); 
DialogResult res = f.ShowDialog();  

//code stops here until you return something of type DialogResult  
if (res == System.Windows.Forms.DialogResult.OK)  
    I_Will_Run_Just_When_DialogReult_Returned_Is_OK();  

フォームのみを表示したい場合:

f.Show();  
I_Will_Run_Anyway_Right_After_Showing_Form(); 
于 2012-08-21T10:18:03.477 に答える
3

ShowDialogShowDialogこれは、ユーザーがフォームを閉じるまでメソッドが返されないことを意味します。

fr.Show代わりにメソッドを使用してください。

于 2012-08-21T10:12:29.233 に答える
1

これを変更できます

fr.ShowDialog();

fr.Show();
于 2012-08-21T10:50:22.197 に答える
0

あなたがする必要があります:

FormView fr = new FormView(id);  
fr.Show();

それらを非モーダルに表示して、実行を継続し、さらに表示できるようにします。

于 2012-08-21T10:13:13.227 に答える