我正在动态构建DataGridView,文本框可能有一个与之关联的自动完成自定义源。在某些情况下,当我将textbox.Multiline设置为true时,我得到以下效果。如果我没有主动编辑单元格,它看起来像这样:
但是,如果我尝试编辑单元格,它看起来像这样:
如果我将光标移动到此编辑模式单元格周围,则将完全将焦点移出单元格,而不是移动文本或扩展单元格高度。它看起来好像是在尝试同时处于多线和单线模式,但我不确定。
有什么想法吗?
答案 0 :(得分:0)
我找到了解决方案 - 不是根本原因。在EditingControlShowing中,我执行以下操作:
textBox.Dock = textBox.Multiline ? DockStyle.Fill : DockStyle.None;
我已设置textBox = (TextBox) e.Control;
它是一个大锤解决方案,但它确实有效。
答案 1 :(得分:0)
让我们给DataGridView对象命名:dgv, 所以在dgv_CellEnter事件中添加以下行
int idxcol = dgv.Columns["YourColumnName"].Index;
if (e.ColumnIndex == idxcol)
dgv.Columns[idxcol].DefaultCellStyle.WrapMode = DataGridViewTriState.False;
并在dgv_CellLeave事件中添加以下行
int idxcol = dgv.Columns["YourColumnName"].Index;
if (e.ColumnIndex == idxcol )
{
dgv.Columns[e.ColumnIndex].DefaultCellStyle.WrapMode = DataGridViewTriState.True;
}