以编程方式更新基于文本框值

时间:2017-10-16 00:34:20

标签: c#

我是一名新的c#程序员,无法根据文本框值更新我以编程方式添加的标签。如果使用表单设计器添加文本框和标签,但是数量文本框和标签将根据我的用户数据而有所不同,那么它将正常工作,因此我将使用代码添加它们。遗憾的是,在Text_Changed事件中无法访问代码中添加的标签,而我在互联网上的搜索并未明确如何实现此目的。以下是我的代码。

namespace Test_Form_Controls
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            TextBox txtBox1 = new TextBox();
            txtBox1.Text = "0";
            txtBox1.Location = new Point(100, 25);
            Controls.Add(txtBox1);
            txtBox1.TextChanged += txtBox1_TextChanged;
            Label label1 = new Label();
            label1.Text = "0";
            label1.Location = new Point(25, 25);
            Controls.Add(label1);
        }

        private void txtBox1_TextChanged(object sender, EventArgs e)
        {
            TextBox objTextBox = (TextBox)sender;
            label1.Text = objTextBox.Text;
        }
    }
}

1 个答案:

答案 0 :(得分:0)

将您的标签移至私人字段

namespace Test_Form_Controls
{
    public partial class Form1 : Form
    {
        Label label1;
        public Form1()
        {
            InitializeComponent();
            TextBox txtBox1 = new TextBox();
            txtBox1.Text = "0";
            txtBox1.Location = new Point(100, 25);
            Controls.Add(txtBox1);
            txtBox1.TextChanged += txtBox1_TextChanged;
            label1 = new Label();
            label1.Text = "0";
            label1.Location = new Point(25, 25);
            Controls.Add(label1);
        }

        private void txtBox1_TextChanged(object sender, EventArgs e)
        {
            TextBox objTextBox = (TextBox)sender;
            label1.Text = objTextBox.Text;
        }
    }
}