1
private void button2_Click(object sender, EventArgs e)
        {
            cl = new ChangeLink();
            cl.StartPosition = FormStartPosition.CenterParent;
            DialogResult dr = cl.ShowDialog(this);
            if (dr == DialogResult.Ok)
            {
                if (cl.getText() == "")
                {
                    MessageBox.Show("The TextBox Cannot Be Empty");
                    cl.ShowDialog(this);
                    return;
                }
                else
                {
                    label4.Text = cl.getText();
                    cl.Close();
                }
            }
            else if (dr == DialogResult.Cancel)
            { 
                cl.Close();
            }

cl 是我从中获取文本的新表格。现在我检查如果 cl.getText() 为空“”,它会向用户发送一条消息,当用户在消息框上单击“确定”时,我希望它返回并再次显示新的表单对话框。当我单击一次新表单的确定按钮并显示messaeBox消息然后再次向我显示新表单的对话框结果框但是当我再次单击确定并且文本框仍然为空时它不会再次显示消息框只需关闭新表单并将 label4 文本设置为空。

我希望每次用户单击“确定”并且文本框为空时,它将一直显示新的“表单”文本框对话框,直到用户单击“取消”或在文本框中放入某些内容,然后单击“确定”。

4

1 回答 1

2

如果您在第二个表格中进行检查,它会干净得多。您需要将代码添加到 Form2 的 OK 按钮的 Click 事件中。DialogResult确保从 OK 按钮属性中删除默认值。

private void button2_Click(object sender, EventArgs e)
{
    if(!string.IsNullOrEmpty(textBox1.Text))
        DialogResult = DialogResult.OK;
}
于 2012-09-16T03:55:04.787 回答