我不知道为什么,特别是它很奇怪,因为没有代码分配给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); }); } }总结
以上是内存溢出为你收集整理的c# – 有时向下键不能在DataGridView上运行全部内容,希望文章能够帮你解决c# – 有时向下键不能在DataGridView上运行所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)