Как использовать сочетание клавиш в datagrid in VB.NET
Всем привет, я очень новичок в этом деле. VB.net &не знаю понятия упс ясно.
У меня есть сетка, которая имеет 3 столбца, я хочу вставить данные предыдущей строки того же столбца в текущую ячейку при нажатии какой-то определенной клавиши(например: - F1)
Смотрите Сетку Здесь
В приведенной выше сетке первая строка столбца "метки" имеет значение "тест", Когда я нажимаю клавишу F1(курсор во второй строке) Я хочу вставить "тест" во вторую строку (ячейку столбца "метки" )
Причина реализации потому что мне нужно вставить повторяющиеся одни и те же данные в строку сетки
Я попробовал ниже код его работы, но я не уверен, что это правильный путь
Я скопировал
Protected Overrides Function ProcessCmdKey(ByRef msg As Message, ByVal keyData As Keys) As Boolean
От Сайте StackOverflow
Пожалуйста, объясните выше функцию (значение protected and override и ее аргументы), и я использую событие щелчка ячейки, которое является правильным или неправильным
Я Объявил
Dim keyData, msg
Но он показывает предупреждающее сообщение
"Variable 'msg' passed by reference before it has assigned a value. A null reference exception could result at run time"
и
"variable 'keydata' is used before it has assigned a value. A null reference exception could result at run time"
Что я уже пробовал:
Private Sub DataGridView1_CellClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellClick Dim keyData, msg Select Case DataGridView1.CurrentCell.ColumnIndex Case gcol.marks ProcessCmdKey(msg, keyData) End Select End Sub Protected Overrides Function ProcessCmdKey(ByRef msg As Message, ByVal keyData As Keys) As Boolean Select Case keyData Case Keys.F1 Select Case Me.DataGridView1.CurrentCell.ColumnIndex Case gcol.marks Dim row = Me.DataGridView1.CurrentCell.RowIndex With Me.DataGridView1 Dim tobepaste = .Item(gcol.marks, row - 1).Value .CurrentCell.Value = tobepaste End With End Select Return True End Select Return MyBase.ProcessCmdKey(msg, keyData) End Function
Richard Deeming
Что такое CellClick
Хэндлер должен был это делать,и какое это имеет отношение к сочетаниям клавиш?
kumaran_
Смотрите эту ссылку https://gyazo.com/1b6b2ae674b0580a4b37b8bb79f14cc2, хотите вставить "тест" в 2-й столбец 2-й строки при нажатии клавиши F1, смотрите отмеченную контрольную строку и курсор, помещенный в ячейку
Richard Deeming
И что же?
Как вы думаете, что CellClick
событие связано с нажатием клавиши быстрого доступа?
Maciej Los
Проверить это: Практическое руководство.Метод OnKeyDown (KeyEventArgs) (System.Окна.Формы)[^]
kumaran_
Как использовать это для моего случая ?, Пожалуйста, объясните на примере