public int dialog()
{
Form prompt = new Form(); // creates form
//dimensions
prompt.Width = 300;
prompt.Height = 125;
prompt.Text = "Adding Rows"; // title
Label amountLabel = new Label() { Left = 75, Top = 0, Text = "Enter a number" }; // label for prompt
amountLabel.Font = new Font("Microsoft Sans Serif", 9.75F);
TextBox value = new TextBox() { Left = 50, Top = 25, Width = prompt.Width / 2 }; // text box for prompt
//value.Focus();
Button confirmation = new Button() { Text = "Ok", Left = prompt.Width / 2 - 50, Width = 50, Top = 50 }; // ok button
confirmation.Click += (sender, e) => { prompt.Close(); }; // if clicked it will close
prompt.AcceptButton = confirmation;
// adding the controls
prompt.Controls.Add(value);
prompt.Controls.Add(confirmation);
prompt.Controls.Add(amountLabel);
prompt.ShowDialog();
int num;
Int32.TryParse(value.Text, out num);
return num;
}
所以这是我的提示,我想制作一个按钮,以便它可以关闭。现在我知道之前已经问过这个问题,但那是因为他们使用的是默认表单。
这是我的CancelButton
以及它会做什么。
prompt.CancelButton = this.Close(); // not working
但是,我没有使用其他课程。我正在使用同一个班级。什么是1调用方法/属性(没有在属性部分中进行可视化编辑),如果关闭按钮则关闭按钮?
答案 0 :(得分:3)
这是另一种关闭表单的方法,只需按下模型表单的退出按钮,而不放置任何取消按钮:
prompt.KeyPreview = true;
prompt.KeyDown += (sender, e) =>
{
if (e.KeyCode == Keys.Escape) prompt.DialogResult = DialogResult.Cancel; // you can also call prompt.Close() here
};
答案 1 :(得分:2)
如果您需要区分关闭取消和关闭确认,那么您需要两个单独的按钮
Button cancellation = new Button()
{ Text = "Cancel", Left = prompt.Width / 2 + 10, Width = 50, Top = 50 };
prompt.CancelButton = cancellation;
cancellation.DialogResult = DialogResult.Cancel;
您的确认按钮也需要DialogResult属性的设置
confirmation.DialogResult = DialogResult.OK;
所以你可以用
获得ShowDialog的结果if(DialogResult.OK == prompt.ShowDialog())
{
int num;
Int32.TryParse(value.Text, out num);
return num;
}
else
return 0; // Or whatever to signal failure
顺便说一下,将DialogResult属性设置为不同的DialogResult.None将导致表单自行关闭,而不需要单击事件来关闭表单。