如何在文本字段中显示按钮文字?

时间:2014-08-20 06:36:33

标签: c# oop calculator

我有十个按钮,其值为0到9;即计算器按钮。

目标:

如果我点击第一个按钮,它会在textbox上显示 0

我希望尽可能缩短编码时间,而无需在按钮点击功能内编码。

这是我的相关代码:

        private Main main;

        public CalculatorClass calculatorClass = new CalculatorClass();

        private List<Button> buttons = new List<Button>();

        public Calculator(Main main)
        {
            InitializeComponent();
            this.main = main;
        }

        private void Calculator_Load(object sender, EventArgs e)
        {
            for (int x = 0; x >= buttons.Count; x++)
            {
                txtNumPad.Text = buttons[x].Click; //not working!
            }
        }

        private void btnClose_Click(object sender, EventArgs e)
        {
            main.EnableButton();
            this.Dispose();
        }

另外,我不想这样做:

btnZero.Text = "";
btnOne.Text = "";
btnTwo.Text = "";
btnThree.Text = ""; ...and so on


txtNumPad.Text = btnZero.Text;

3 个答案:

答案 0 :(得分:3)

您可以做的是为所有按钮分配相同的点击功能:

foreach (var btn in buttons)
{
    btn.Click += btn_Click;
}

然后在点击事件中,您不关心触发了哪个按钮,因为它是一个按钮,您想要添加它的文本:

void btn_Click(object sender, EventArgs e)
{
    var btn = sender as Button;
    if (btn != null)
    {
        txtNumPad.Text = txtNumPad.Text + btn.Text;
    }
}

但是如果不使用点击功能,您将无法通过点击对按钮做出反应。

答案 1 :(得分:2)

不清楚你要做什么 但你可以试试按钮[x] .Text ,或者简要说明你想做什么,以便我可以提供帮助

答案 2 :(得分:2)

    private void Calculator_Load(object sender, EventArgs e)
    {
         List<Button> buttons = new List<Button>();
         for (int i = 0; i < 10; i++)
         {
             Button btn = new Button();
             btn.Click += Program_Click;
             btn.Text = i.ToString();
             buttons.Add(btn);
         }
    }

    void Program_Click(object sender, EventArgs e)
    {
        txtNumPad.Text = txtNumPad.Text + ((Button)sender).Text;
    }