c# – 有时向下键不能在DataGridView上运行
发布时间:2020-12-15 22:27:34 所属栏目:百科 来源:网络整理
导读:有时向下键不能在DataGridView上运行. 我不知道为什么,特别是它很奇怪,因为没有代码分配给DataGridView的键的事件… SelectionMode is FullRowSelect Multiselect is False 这段代码没有帮助…… private void dataGridView1_PreviewKeyDown(object sender,r
有时向下键不能在DataGridView上运行.
我不知道为什么,特别是它很奇怪,因为没有代码分配给DataGridView的键的事件…
这段代码没有帮助…… 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期间,网格失去了焦点.
可能它正在发生,因为在飞行中创建和插入用户控件. 所以我做了三次调整,现在很好! 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); }); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- c# – 循环引用对象的垃圾收集
- C#中利用断点操作调试程序的步骤详解
- XCode包含路径
- SD card boot and flashing tool for TI davinic
- 当设置为nil或“”时,UILabel文本属性使UILabel从
- 详解vue2.0+vue-video-player实现hls播放全过程
- ruby – 如何用mongoid / moped做一个upsert / p
- 使用 Server-Side Swift 开发 RESTful API
- ruby-on-rails – Rails 3 ActiveRecord条件包括
- postgresql – 可编程的方式来管理Heroku Postgr
热点阅读