信息:
我正在使用一个InFragurs3.5Winforms应用程序,并在其中使用C#.NET超网格8.2。网格有5列,其中前三列是只读的,第四列和第五列是值列表下拉列表。第四列叫做"From“。
我想实现什么:
当表单启动时,我希望将焦点设置到"From“列的第一行单元格,并使其处于编辑模式。
我编码了什么:
我写了下面的函数
私有空SetFocus()
{
_grid.Focus();
_grid.ActiveCell = _grid.Rows[0].Cells["From"];
_grid.PerformAction(UltraGridAction.EnterEditMode);
_grid.DisplayLayout.Bands[0].Columns["From"].Editor.Focus();
}
当通过窗体的paint事件调用时,它工作得很好。但看到控件将焦点放在每种油漆上是令人恼火的。在加载时调用此函数可获得正确的焦点;但不会将控件设置为编辑模式。
已经谢谢了
乔特斯纳
发布于 2010-11-24 22:37:17
我不确定,但我搜索了一下,也许,
_grid.Rows[0].Cells["From"].Activate();
不是调用
_grid.ActiveCell = _grid.Rows[0].Cells["From"];
我不确定这是否会有所不同,但你可以试一试。
发布于 2014-02-21 10:46:29
在这里解决:link
var cell = ... // Get the cell
if (cell != null)
{
BeginInvoke(new MethodInvoker(() =>
{
cell.Activate();
bugGrid.PerformAction(UltraGridAction.EnterEditMode);
}));
}
https://stackoverflow.com/questions/4267797
复制相似问题