0

我想知道互联网上没有关于这个问题的帖子,如何在 MyGrid_EditingControlShowing 事件在网格上显示此文本框后添加滚动条以在 DataGridViewTextBoxColumn 上工作。

我在下面添加了事件

private void MyGrid_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
if ((!(e.Control is TextBox)) || e.CellStyle.WrapMode == DataGridViewTriState.True) return;
            var textBox = e.Control as TextBox;
            textBox.ScrollBars = ScrollBars.Both;
}

但它没有用,当鼠标滚动时它滚动到网格的行而不是单元格

提前致谢

4

1 回答 1

0

这个:

!(e.Control is TextBox))

永远不会是真的。

你可以试试这个:

if (MyGrid.CurrentCell.EditType != typeof(DataGridViewTextBoxEditingControl))
{
    return;
}

或这个:

DataGridViewTextBoxEditingControl tb = e.Control as DataGridViewTextBoxEditingControl;

if (tb == null)
{
    return;
}

请注意,只有在处于编辑模式ScrollBars时才会显示!aCell“单元格”DateGridView只是虚拟控件,或者换句话说,它们只是绘制在屏幕上的像素。它们没有事件模型等,因此它们无法交互运行。只有EditControl被覆盖的是实际控制。

于 2018-10-23T08:53:57.370 回答