0

私は今次のコードを持っています:

var picker = new DateTimePicker();
var form = new Form();
form.Controls.Add(picker);
var result = form.ShowDialog();
if (result == DialogResult.OK)
{
    //Can´t acces this
}
if (result == DialogResult.Cancel)
{
    //Do when Form closed
}

フォームが表示されたとき、pickerボタンはなく、フォーム上にあるだけです。result == DialogResult.Cancelこれで、フォームを閉じたときにのみアクセスできます。ブランチにアクセスするために必要なことresult == DialogResult.OK

4

1 に答える 1

0

OKフォームに 2 つのボタンを追加して、イベントを適切Cancelに処理できます。Clickポイントは、次のように、メソッドDialogResultの代わりにプロパティを使用してフォームを閉じる必要があることです。Close()

//Click event handler for your OK button
private void OK_Click(object sender, EventArgs e){
    DialogResult = DialogResult.OK;
}
//Click event handler for your Cancel button
private void Cancel_Click(object sender, EventArgs e){
    DialogResult = DialogResult.Cancel;
}

または、単純DialogResultに a のプロパティを使用できます (イベント ハンドラーButtonにコードを追加する必要はありません)。Click

buttonOK.DialogResult = DialogResult.OK;
buttonCancel.DialogResult = DialogResult.Cancel;

: 上記のすべては、フォームを使用して表示する場合にのみ機能しますShowDialog()それ以外の場合は、フォームを手動で閉じる必要があります

于 2013-09-13T12:52:36.003 に答える