其他文本框文本更改时如何自动更改文本框文本?

我有这些名为bags,rate,quantity,packing size and amount的文本框我想要做的是当用户输入袋子和速率和包装尺寸时数量文本框应该自动显示相应的数量和数量但是在我的情况下当我点击计算按钮,然后它计算并显示我尝试使用 textchanged 事件的数量和金额,但它不能完成这项工作?


using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;


namespace Login

{

    public partial class Sale : Form

    {

        SaleCalci sale;

        SaleBillheader SaleHeaderModel = new SaleBillheader();

        tbl_SaleBillDetails SaleDetailModel = new tbl_SaleBillDetails();




        public Sale()

        {

            InitializeComponent();

        }


        private void Cancelbtn_Click(object sender, EventArgs e)

        {

            clear();

        }


        private void clear()

        {

            txtBillNo.Text = txtDesc.Text = "";

            txtBags.Text = txtQty.Text = txtRate.Text = txtAmt.Text = "0.00";

            if(txtQty.Text !=null &&  txtAmt.Text !=null )

            {

                txtQty.Text = "0.00";

                txtAmt.Text = "0.00";

            }

            Savebtn.Text = "Save";

            SaleHeaderModel.SaleBillHeaderId = 0;

            SaleDetailModel.SaleBill_Id = 0;

        }


        private void Exitbtn_Click(object sender, EventArgs e)

        {

           var result =  MessageBox.Show("Are you sure you want to close this form ?", "Confirm", MessageBoxButtons.YesNo);

           if (result == DialogResult.Yes)

           { this.Close(); }



        }


        private void Sale_Load(object sender, EventArgs e)

        {

            ItemCombo();

            PartyCombo();

            PackingSizeCombo();


           // clear();

        }


        private void ItemCombo()

        {

            UserDataEntities db = new UserDataEntities();

            Itembox.DataSource = db.tbl_ItemId.ToList();

            Itembox.ValueMember = "ItemId";

            Itembox.DisplayMember = "ItemName";


        }

  

森林海
浏览 144回答 2
2回答

阿波罗的战车

通常,如果文本值更改,“TextChanged”事件会自动触发。所以这里的问题是我考虑你的另一个“部分类”,其中必须存在事件处理程序工作。就像是:txtBags.TextChanged += new EventHandler(txtBags_TextChanged);如果存在这种情况,请检查您的其他部分课程。如果您移动 gui 元素或出于其他原因,此事件处理程序有时会从项目中消失...您可以手动阅读此语句。顺便说一句,如果您没有使用其他部分类的经验,那么您可以尝试删除这些文本框并重新添加它们,那么您的问题将自动解决。

Helenr

您需要在 txtBags 、 txtRate 和 Size 的 TextChanged 事件中调用 DisplayAmt。在上面的代码中,对 DisplayAmt 的调用被注释掉了。相反,您在 txtQty 的 TextChanged 事件中调用 DisplayAmt。你应该这样做,而不是这样做。private void txtAmt_TextChanged(object sender, EventArgs e){   DisplayAmt();}private void txtRate_TextChanged(object sender, EventArgs e){   DisplayAmt();}同样,您需要为 Size 的 Text Control 添加 Changed 事件。txtQty 由 DisplayAmt() 方法更新。因此,您不一定需要它,除非出于 OP 中未指定的原因。
打开App,查看更多内容
随时随地看视频慕课网APP