C#用于薪资计算器的光标处的数字/操作员输入问题

时间:2011-07-14 10:09:33

标签: c# visual-studio-2010

我正在学习C#编程语言,正在为SAP business One制作工资单应用程序插件。我已经构建了一个自定义计算器,它有各种命令,添加,减去等等。我使用的是Visual Studio 2010。

输出“屏幕”是一个名为“formula_display”的富文本框。

我可以输入数字和命令,它们从左到右正确显示在formula_display上,即2 8 9 * <=

我还有操作数的输入按钮,例如(), <>, [] and {}

我的问题:

如果我输入4 * (),然后尝试输入一些数字,例如括号内的9(通过点击()以便将光标放在那里),我无法这样做,因为该数字将显示在括号后面,即4 * ()9

如何修改我的代码以解决问题:

代码段:

private void btn9_Click(object sender, EventArgs e)
    {
        if (inputStatus)
        {
            formula_display.Text += btn9.Text;
        }
        else
        {
            formula_display.Text = btn9.Text;
            inputStatus = true;
        }
    }

任何帮助表示赞赏。我正在使用Windows窗体

1 个答案:

答案 0 :(得分:1)

在WPF中尝试这样的事情:

formula_display.SelectionLength = 0;
formula_display.Text.Insert(formula_display.CaretIndex, btn9.Text);

和WinForms中的类似内容:

formula_display.SelectionLength = 0;
formula_display.Text.Insert(formula_display.SelectionStart, btn9.Text);