繁体   English   中英

如何防止在表单加载时执行事件

[英]How to prevent an event from being executed on form load

加载表单时我有以下代码

 private void LlenarCampos()
        {
            NombreProducto.Text = productos.Nombre;
            ID.Text = productos.Producto_ID.ToString();
            Codigobarrafrm.Text = productos.CodigoBarra;
            Existenciafrm.Text = productos.Existencia.ToString();
            precio1frm.Value = (decimal)productos.Precio1;
            beneficio1frm.Value = (decimal)productos.Beneficio;
            Costo.Value = (decimal)productos.Costo;
            Existenciafrm.Enabled = false;
            ComboCategoria.SelectedItem = CategoriaYPresentaciones.Categoria.fromid(productos.Categoria_ID).Nombre;

        }

此代码负责填写我的表单的所有字段,但我有两个文本框,当执行 EditValueChanged 事件时,进行计算,如何在表单填充数据之前防止此事件发生从数据库数据和用户做出改变?

这是文本框代码:

private void precio1frm_EditValueChanged(object sender, EventArgs e)
        {
            decimal beneficio = (precio1frm.Value - Costo.Value);
            beneficio1frm.Value = (beneficio / Costo.Value) * 100;
        }

您没有显示定义事件处理程序的位置,所以我假设您是让设计器通过 Windows Forms IDE 执行此操作。因此,如果您在设计器中查看文本框的事件,就会在那里看到它。

这样做的目的是创建此代码(或类似代码):

precio1frm.EditValueChanged += precio1frm_EditValueChanged;

找到该代码(如果不确定它在哪里,请右键单击 precio1frm_EditValueChanged 的定义并选择“查找所有参考”或单击其正上方的“参考”链接。从那里将其剪切并粘贴到表单的末尾加载代码。根据需要对每个控件重复此操作。

这意味着在表单加载完成之前不会触发事件处理程序

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM