这听起来应该有一个简单的解决方案,但我无法解决。
我有一个c#表单和一个FormClosing
事件处理程序:
private void DrawBorderForm_FormClosing(object sender, FormClosingEventArgs e)
{
_dCornerRadius = 0.0;
bool bIsDouble = false;
try
{
bIsDouble = Double.TryParse(textBoxRadius.Text, out _dCornerRadius);
}
catch
{
bIsDouble = false;
}
if (!bIsDouble || _dCornerRadius < 0.0 || _dCornerRadius > 100.0)
{
MessageBox.Show("Please input a radius value of 0 to 100!");
e.Cancel = true;
return;
}
}
如果值不是确定,它会验证某些文本值并禁止关闭表单。
问题是此处理程序正在针对确定和取消以及关闭进行解雇。我不需要验证他们是取消还是关闭。只要他们点击确定,因此想要关闭表单。
答案 0 :(得分:2)
你可以分析this.DialogResult
,这已经在表单结束事件被触发时设置了
答案 1 :(得分:0)
我发现这个问题可以解答它:
Preventing a dialog from closing in the button's click event handler
private void btnOK_Click(object sender, EventArgs e)
{
_dCornerRadius = 0.0;
bool bIsDouble = false;
bIsDouble = Double.TryParse(textBoxRadius.Text, out _dCornerRadius);
if (!bIsDouble || _dCornerRadius < 0.0 || _dCornerRadius > 100.0)
{
MessageBox.Show("Please input a radius value of 0 to 100!");
this.DialogResult = DialogResult.None;
}
}