protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if(keyData.Equals(System.Windows.Forms.Keys.Enter))
{
SendKeys.Send("{Tab}");
} }
}
return base.ProcessCmdKey (ref msg, keyData);
}
单元格具有"enter"变为"tab"的功能.
但是出现两种情况:
1.在单元格内容没有发生变化时能达到我所希望的回车后在本行变为"tab",这个不用管。
2.在单元格内容变化时,回车后虽然也执行了"tab"功能,但是焦点跑到了下一行去了。问题是:如何在单元格内容变化时,回车后也能在本行执行"tab"功能。
{
if(keyData.Equals(System.Windows.Forms.Keys.Enter))
{
SendKeys.Send("{Tab}");
} }
}
return base.ProcessCmdKey (ref msg, keyData);
}
单元格具有"enter"变为"tab"的功能.
但是出现两种情况:
1.在单元格内容没有发生变化时能达到我所希望的回车后在本行变为"tab",这个不用管。
2.在单元格内容变化时,回车后虽然也执行了"tab"功能,但是焦点跑到了下一行去了。问题是:如何在单元格内容变化时,回车后也能在本行执行"tab"功能。
[C#]
public class MyDataGrid : DataGrid
{
protected override bool ProcessCmdKey(ref System.Windows.Forms.Message msg, System.Windows.Forms.Keys keyData)
{
if(msg.WParam.ToInt32() == (int) Keys.Enter)
{
SendKeys.Send("{Tab}");
return true;
}
return base.ProcessCmdKey(ref msg, keyData);
}
}
{
if(keyData.Equals(System.Windows.Forms.Keys.Enter))
{
SendKeys.Send("{Tab}");
}
else
{
return base.ProcessCmdKey (ref msg, keyData);
}
}可能是响应Enter时相当于连续按了Tab,Enter导致的吧?
具体我没环境没测试.