PRADEaZX Ответов: 1

Как вызвать форму калькулятора C# из каждого элемента управления textbox в приложении C# и получить в ней результат


Всем Привет

Я закодировал небольшой калькулятор, чтобы сделать basic+, -,*,/. теперь я хочу, чтобы эта форма калькулятора вызывалась (горячей клавишей, скажем, F3 ) из каждого элемента управления, например textbox или datagridview cell, и значение калькулятора должно заполнять ту ячейку textbox/datagridview, из которой он вызывается
пожалуйста помочь..
заранее спасибо

Что я уже пробовал:

Я могу вызвать его из определенного текстового поля..но мне нужен общий код, чтобы его можно было вызвать из любого элемента управления textbox без необходимости писать код для каждого текстового поля

CHill60

Поместите код в обработчик и прикрепите его к каждому текстовому полю.

1 Ответов

Рейтинг:
9

OriginalGriff

Переопределите метод Form.ProcessCmdKey и проверьте наличие ключа там:

protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
    {
    Keys keyOnly = keyData & ~Keys.Modifiers;
    Keys modifiersOnly = Control.ModifierKeys & (Keys.Shift | Keys.Control | Keys.Alt);
    if (modifiersOnly == 0)
        {
        // Key alone
        switch (keyOnly)
            {
            case Keys.F3:
                ...
                return true;
            }
        }
    return false;
    }
Это позволяет вашей форме обрабатывать ключ до того, как он попадет в какие-либо элементы управления.
Затем вам нужно найти сфокусированный контроль, но это описано здесь: .нетто - что это предпочтительный способ, чтобы найти элемент управления с фокусом ввода в приложение приложения WinForms? - переполнение стека[^]
И затем вы можете найти нужную ячейку для DataGridView, используя свойства SelectedIndex и SelectedCells.