单击按钮后关闭表单,没有this.close()调用

时间:2013-12-04 12:52:41

标签: c# winforms click form-submit

这是一个简单的问题,但我不知道问题出在哪里。我有一个包含一些代码的表单,当我点击“crear”按钮时,在该按钮中我调用函数“Comprobar”,如果文本框为空,则查询,如果“Comprobar”为false则显示消息。< / p>

问题:单击“Crear”按钮后,表单显示消息(如果全部为空),然后表单关闭。

这是代码

public partial class FrmNuevaCita : MetroForm
    {
        DataTools mytool = new DataTools();
        DataSet ds = new DataSet();
        BindingSource bs = new BindingSource();
       // string searchDate = "";
        int codigoPaciente = -1;

        FrmBuscarPaciente BuscarPaciente = new FrmBuscarPaciente();

        public FrmNuevaCita()
        {
            InitializeComponent();
            BuscarPaciente.SetCode += new EventHandler(YouCliked);


        }


        private void YouCliked(object sender, EventArgs e)
        {
            codigoPaciente = BuscarPaciente.GetCodigoPaciente;
            //MessageBox.Show("Codigito es " + codigoPacienteActual.ToString());
            txtPaciente.Text = codigoPaciente.ToString();

        }

        public DateTime SetDate
        {
            set { dtpFechaCita.Value = value; }
        }
        private void mbCancelar_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void metroRadioButton_CheckedChanged(object sender, EventArgs e)
        {
            this.cmbHora.Items.Clear();

            if (metroRadioButton1.Checked == true)
            {
                this.cmbHora.Items.AddRange(new object[] 
                      {"8:00","8:30","9:00","9:30","10:00","10:30","11:00","11:30"});

            }

            else if (metroRadioButton2.Checked == true)
            {
                this.cmbHora.Items.AddRange(new object[] { "12:00", "12:30", "13:00", "13:30", "14:00", "14:30", "15:00", "15:30","16:00","16:30","17:00","17:30","18:00","18:30","19:00" });

            }
        }

        private void mtBuscar_Click(object sender, EventArgs e)
        {
            BuscarPaciente.Show();
        }

        private void mbCrear_Click(object sender, EventArgs e)
        {
            if (Comprobar()==false)
            MessageBox.Show("Por favor complete todos los campos");
        }

        private bool Comprobar()
        {
            bool result = false;


            if (txtPaciente.Text.Trim().Length != 0 && txtObservaciones.Text.Trim().Length != 0  && cmbHora.Text.Trim().Length != 0)
                result = true;

            return result;
        }






    }

2 个答案:

答案 0 :(得分:1)

确保“清除”按钮的DialogResult属性设置为DialogResult.None。 该表单的CancelButton属性未设置为“清除”按钮。

答案 1 :(得分:1)

你一步一步调试吗? 可能的问题:

  1. 表单的“CancelButton” - 选项设置为“mbCrear_Click” - 按钮。

  2. 表单的Designer文件中可能存在一些错误的事件链接。

  3. “mbCancelar_Click”-Event&amp; “mbCrear_Click”-Event指的是同一个按钮

  4. 最好的办法是,将断点设置为“mbCrear_Click”并逐步调试,然后查看表单的关闭位置。 ;)

    希望我能提供帮助