我想知道互联网上没有这个问题的帖子,在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;
}
但是它没有用,当鼠标滚动时,它滚动到了不在单元格上的网格行
预先感谢
答案 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
是实际控件。