c# - 表单在不应该关闭的时候关闭

标签 c# winforms

我的申请中有两个表格。我调用 Form 2 的方式是这样的:

表格 1:

private void btnTest_Click(object sender, EventArgs e)
{
    DialogResult result = new System.Windows.Forms.DialogResult();
    Add_Link addLink = new Add_Link();
    result=addLink.ShowDialog();

    if (result == System.Windows.Forms.DialogResult.OK)
    {
        //
    }
}

表格 2:

private void btnAdd_Click(object sender, EventArgs e)
{            
    if(validURL(txtSubLink.Text))
    {
        HyperLink add = new HyperLink(txtSubLink.Text,txtSubText.Text,"URL");
        this.build = add;                 
    }
    else
    {
        MessageBox.Show("Valid URL Needed! " + txtSubLink.Text, "ERROR");
    }             
}

我的问题是如果用户单击添加 按钮,将显示错误消息(因为数据无效或文本框为空)但是 它会关闭表单。如果两个文本框包含正确的数据,我只希望用户关闭表单并将数据传回。如果两个文本框不包含正确的数据 OR 为空,当用户单击添加时,应该显示错误消息,并且 Form 2 应该保持打开状态,如何我能让它发生吗...?

最佳答案

我怀疑您的 btnAdd 已将其 DialogResult 属性设置为 OK。取消设置,然后在您对输入满意时在您的事件处理程序中添加 this.DialogResult = DialogResult.OK

private void btnAdd_Click(object sender, EventArgs e)
{

    if(validURL(txtSubLink.Text))
    {
         HyperLink add = new HyperLink(txtSubLink.Text,txtSubText.Text,"URL");
         this.build = add;
         this.DialogResult = DialogResult.OK;

    }
    else
    {
        MessageBox.Show("Valid URL Needed! " + txtSubLink.Text, "ERROR");
    }

}

关于c# - 表单在不应该关闭的时候关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14025411/

相关文章:

c# - 知道插入符号在 Winforms TextBox 中的点位置?

c# - Newtonsoft.Json v11 - DeserializeObject 抛出 JsonReaderException

c# - 最长递增子序列的数量

c# - 如何将变量传递给 C# 中的事件?

c# - 在 visual studio 2010 winforms 项目中获取表单设计 View 的任何快捷方式/

c# - 从控件中绘制图像

c# - 单击时禁用 checklistbox 复选框,但不从后面的代码中禁用

C# `foreach` 循环 C 等效项

c# - Elasticsearch Nest找不到过滤器

c# - 在 Winforms 窗体中滑动