有时向下键不能在DataGridView上运行.
我不知道为什么,特别是它很奇怪,因为没有代码分配给DataGridView的键的事件…
SelectionMode is FullRowSelect
Multiselect is False
这段代码没有帮助……
private void dataGridView1_PreviewKeyDown(object sender,reviewKeyDownEventArgs e) { switch (e.KeyCode) { case Keys.Down: e.IsInputKey = true; break; case Keys.Up: e.IsInputKey = true; break; } } private void dataGridView1_KeyDown(object sender,KeyEventArgs e) { if (e.KeyData == Keys.Down) { e.Handled = true; } else if (e.KeyData == Keys.Up) { e.Handled = true; } }
任何线索?
附:
似乎SelectionChanged方法做了一些艰苦的工作……所以当我禁用它时,eberything很好.
private void dataGridView1_SelectionChanged(object sender,EventArgs e) { // Some hard work }
所以问题是如何优化它.
我假设使用Timer,所以当用户停止选择箭头键1秒后
应该执行SelectionChanged方法的代码.
关于最佳方法的任何线索?
解决方法
不知何故,在执行SelectionChanged期间,网格失去了焦点.
可能它正在发生,因为在飞行中创建和插入用户控件.
可能它正在发生,因为在飞行中创建和插入用户控件.
所以我做了三次调整,现在很好!
bool canDoHardWork = true; private void dataGridView1_SelectionChanged(object sender,EventArgs e) { if (canDoHardWork) { int interval = 2000; // Just 2 seconds Task.Factory.StartNew(() => { canDoHardWork= false; Thread.Sleep(interval); this.BeginInvoke((Action)(() => { PopulateTabs(); // Very hard work dataGridView1.Focus(); canDoHardWork= true; }),null); }); } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。