我有一个带有两列(DataGridViewTextBoxColumn
和DataGRidViewComboBoxColumn
)的 DataGridView。如果我单击文本框列中的单元格并使用鼠标滚轮滚动,则网格会滚动。太棒了。
如果我单击组合框列中的单元格,鼠标滚轮将滚动组合框中的项目。我需要滚动datagridview。
在我尝试修复时,我可以通过处理EditingControlShowing
事件来禁用组合框中的滚动:
private void SeismicDateGridView_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
if (e.Control is IDataGridViewEditingControl)
{
dgvCombo = (IDataGridViewEditingControl) e.Control;
((System.Windows.Forms.ComboBox)dgvCombo).MouseWheel -= new MouseEventHandler(DGVCombo_MouseWheel);
((System.Windows.Forms.ComboBox)dgvCombo).MouseWheel += new MouseEventHandler(DGVCombo_MouseWheel);
}
}
private void DGVCombo_MouseWheel(object sender, System.Windows.Forms.MouseEventArgs e)
{
HandledMouseEventArgs mwe = (HandledMouseEventArgs)e;
mwe.Handled = true;
}
任何想法如何在DataGridViewComboBox
列处于活动状态时滚动 DataGridView ?