Я пытаюсь решить эту добрую старую проблему в своей собственной среде, адаптировал множество различных решений, но все равно не добился успеха.
У меня есть User Control
с именем EntryGrid
, у которого есть DataGridView
, его заголовки и такие вещи заданы в коде. Тогда есть форма, на которой есть EntryGrid
.
Я знаю, что колонки excel должны быть готовы к вставке всех ячеек в строку, для этого я использовал это решение: copypaste, за исключением копии. Вот как это выглядит на моем месте:
Как включить copy-paste из Excel в пользовательский DataGridView?
Private Sub EntryGrid_KeyDown(sender As Object, e As KeyEventArgs) Handles EntryGrid4.KeyDown, EntryGrid8.KeyDown, EntryGrid16.KeyDown, EntryGrid32.KeyDown
e.Handled = True
Dim entryGrid As EntryGrid = sender
Dim dataGrid As DataGridView = entryGrid.DataGrid
If (e.Control And e.KeyCode = Keys.V) Then
MessageBox.Show("Success") 'for now
End If
End Sub
Это абсолютно не работает для меня. Я даже установил KeyPreview
в True
в форме, но ничего не происходит никогда.
Тогда я попытался this solution, мину с любым результатом:
Private Sub EntryGrid_EditingControlShowing(sender As System.Object, e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgs) Handles EntryGrid4.EditingControlShowing
AddHandler e.Control.KeyDown, AddressOf cell_KeyDown
End Sub
Private Sub cell_KeyDown(sender As Object, e As KeyEventArgs)
If e.KeyCode = Keys.V Then
MessageBox.Show("Success")
End If
End Sub
EntryGrid4
является имя UserControl на форме, но он не получил никакого EditingControlShowing
события, только DataGridView
имеет, но я не могу использовать, как это : EntryGrid4.DataGrid.EditingControlShowing
Я создал событие в EntryGrid
(Public Event EditingControlShowing(sender As Object, e As DataGridViewEditingControlShowingEventArgs)
), но ничего не изменилось.
Я могу вставить что-либо из буфера обмена в ячейку, но это было возможно, прежде чем я начал изменять. Спасибо за любую идею!
В чем проблема? Это просто вставка значения в ячейку, которая находится в режиме редактирования или что-то еще? Перепишите вопрос и сделайте его более понятным и удалите части, которые не связаны с проблемой. Например, если вопрос заключается в вставке из буфера обмена в ячейку в режиме редактирования, вы должны определить, как вы хотите вставить, используя сочетание клавиш или с помощью меню. Кроме того, это то, о чем вы просите, вам не нужно описывать структуру пользовательского контроля или столбцы excel и т. Д. Пожалуйста, держите вопрос простым и конкретным. –
Проблема в том, что любая из двух попыток работает, если вы можете помочь в одном, пожалуйста, сделайте это. Я бы хотел использовать Ctrl + V. – monami