【发布时间】:2017-03-02 22:21:51
【问题描述】:
我正在尝试在自己的环境中解决这个老问题,适应了许多不同的解决方案,但仍然没有成功。
我有一个User Control,名为EntryGrid,它有一个DataGridView,它的标题和代码中设置了这样的东西。然后有一个表单,其中包含一个EntryGrid。
我知道必须准备好 excel 列才能将所有单元格粘贴到一行中,为此我使用了这个解决方案:copypaste,除了复制部分。这是我家的样子:
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 是窗体上的用户控件的名称,但它没有任何EditingControlShowing 事件,只有DataGridView 有,但我不能这样使用:EntryGrid4.DataGrid.EditingControlShowing
我在 EntryGrid (Public Event EditingControlShowing(sender As Object, e As DataGridViewEditingControlShowingEventArgs)) 中创建了一个活动,但一切都发生了变化。
我可以将剪贴板中的任何内容粘贴到单元格中,但在我开始修改之前这是可能的。
感谢您的任何想法!
【问题讨论】:
-
到底是什么问题?它只是在处于编辑模式的单元格中粘贴一个值还是其他?请改写问题并使其更清晰,并删除与问题无关的部分。例如,如果问题是关于在编辑模式下从剪贴板粘贴到单元格,您应该确定要如何粘贴,使用键盘快捷键或使用菜单。这也是你要问的,你不需要描述用户控制结构或excel列等等。请保持问题简单而具体。
-
问题是这两种尝试中的任何一种都有效,如果您可以提供帮助,请这样做。我想使用 Ctrl+V。
标签: excel vb.net winforms datagridview copy-paste