C # Проблема с вводом номера / оператора в курсоре для Калькулятора заработной платы - PullRequest
1 голос
/ 14 июля 2011

Я изучаю язык программирования C # и создаю надстройку для приложения для расчета заработной платы для SAP business One.Я создал специальный калькулятор, который имеет различные команды, сложения, вычитания и т. Д. Я использую Visual Studio 2010.

Выходной «экран» представляет собой многофункциональное текстовое поле с именем «form_display».

IЯ могу вводить числа и команды, и они правильно отображаются в формуле_дисплея слева направо, т. е. 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 Forms

1 Ответ

1 голос
/ 14 июля 2011

Попробуйте что-то подобное в 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...