将滚动条添加到DataGridViewTextBoxColumn

时间:2018-10-23 07:24:35

标签: c# datagridview datagridviewtextboxcell editablegrid

我想知道互联网上没有这个问题的帖子,在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;
}

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

预先感谢

1 个答案:

答案 0 :(得分:0)

此:

!(e.Control is TextBox))

永远不会是真的。

您可以尝试以下方法:

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

或者这个:

DataGridViewTextBoxEditingControl tb = e.Control as DataGridViewTextBoxEditingControl;

if (tb == null)
{
    return;
}

请注意,ScrollBars仍仅在Cell处于编辑模式时显示! DateGridView中的'Cells'仅是虚拟控件,换句话说,它们只是画在屏幕上的像素。它们没有事件模型等,因此它们无法交互运行。只有重叠的EditControl是实际控件。