我有一个带有文本框的简单表单,我想让用户在关闭或跳过此控件之前在文本框中输入一些数据,但是当我处理验证事件时,我只能通过放置一个 CauseValidation 属性设置为 true 的取消按钮来关闭表单。我的问题是,即使文本框中没有写入任何内容,如何启用控制框中的 X 按钮以关闭表单?通过添加form_closing处理程序,此按钮在我第二次单击它时起作用,但是我可以仅按一次X按钮关闭表单吗?
这是我的表格.cs文件:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Validation
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void textBox1_Validating(object sender, CancelEventArgs e)
{
if(textBox1.Text.Trim().Equals(string.Empty))
{
e.Cancel=true;
errorProvider1.SetError(textBox1,"Error");
}
else
errorProvider1.SetError(textBox1,"");
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
textBox1.CausesValidation = false;
}
}
}
多谢
是的,试试这个。
private void Form2_FormClosing(object sender, FormClosingEventArgs e)
{
if (textBox1.CausesValidation)
{
textBox1.CausesValidation = false;
Close();
}
}
除了前面的答案,此方法也有效:
private void Input_FormClosing(object sender, FormClosingEventArgs e)
{
e.Cancel = false;
}