如何解决DataGridView不能聚焦,但是其中之一可以
| 我遇到了与Windows窗体中的DataGridViews有关的最奇怪的错误。 我有一个TabControl,应该在每个标签页中包含一个停靠的DataGridView。我认为将网格集中在更改选项卡页面上会很方便,以便用户只需将鼠标悬停在网格上并在更改页面时开始滚动即可。因此,我只是在事件处理程序中放入“ 0”来更改选项卡页。 但是,确实发生了一些奇怪的事情。在我的测试应用程序中,我有三个标签页。如果我在启动应用程序后立即尝试滚动网格,则无法正常工作;我必须先单击网格。我期望如此。但是,如果更改选项卡页,除非单击第一个网格,否则我无法滚动其他网格! 因此,如果我将页面切换到第二页,然后又切换回第一页,则无需单击即可自动滚动该网格,但是如果我切换到第三页,则必须单击以使网格聚焦。 我看了一下网格的CanFocus
属性,似乎只有第一个网格将其设置为True。它们都是以编程方式创建的,并且都以相同的方式创建。我不明白他们为什么会有所不同。
有任何想法吗?
解决方法
不活动的标签页的Visible属性设置为false。 CanFocus的文档说:
为了让控件接收
输入焦点时,控件必须有一个
分配给它的句柄,以及可见
和Enabled属性必须都是
控件和控件均设置为true
所有其父控件
, 好吧,我解决了。我这是愚蠢的编程错误,我只有
grids[tabs.TabIndex].Focus()
而不是grids[tabs.SelectedIndex].Focus()
。
那好吧。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。