2011-11-16 23 views
0

フォームをダイアログにするようにしました。フォームには、1つのテキストボックス、1つのOKボタン、1つのキャンセルボタンしかありません。どういうわけか、rnmForm.DialogResult!= DialogResult.OKを変更しない限り、次のコードは機能しません。どうしてですか?dialogresultが動作しない、または何らかの理由で部分的に動作する

frmRename rnmForm = new frmRename(); 

     rnmForm.ShowDialog(new Form()); 
     if (rnmForm.DialogResult==DialogResult.OK) 
     { 
      MessageBox.Show("test"); 

     } 

答えて

1

OKクリックイベントでダイアログを閉じる前に、ダイアログ結果を[OK]に設定してください。

this.DialogResult = DialogResult.OK; 
this.Close(); 

またはこれに類似し、[OK]ボタン、上のプロパティを設定:

btnOk.DialogResult = DialogResult.OK; 

私はまた、あなたがにShowDialogを呼び出して、所有者であるために、フォームの新しいインスタンスを指定している理由を依頼する必要があり、パラメータなしで呼び出すのではなく、それが意図的なものかどうかは分かりません。

rnmForm.ShowDialog(); 
+0

umm私はOKボタンのクリックイベントがあります。単純な文字列の割り当て(textbox.TEXTを文字列varableに割り当てる)がありますか? – ikel

+0

が編集されました。 closeを呼び出す直前にthisDialogResult = DialogResult.Okを追加します。 – Jay

+0

実際には、あなたは正しいです、私は新しい意図を持っていませんでした。また、私はbtnOk.DialogResult = DialogResult.OKを入れた後、public frmRename()を実行しました。 { this.StartPosition = FormStartPosition.CenterParent; InitializeComponent(); btnOK.DialogResult = DialogResult.OK; } – ikel

関連する問題