c# - ListView 不选择鼠标位置大于 32767 的项目
问题描述
问题是什么: 我有一个 ListView 放置在 AutoScroll 设置为 true 的面板上。当 ListView 的高度大于 32767 时,无法再选择项目。我发现这与鼠标 X 和 Y 在 32767(有符号 16 位)处翻转的事实有关。
我尝试过的: 使用以下代码,我希望通过使用 MousePosition 绕过 32767 限制的限制,然后通过代码选择项目:
Point p = listView1.PointToClient(MousePosition);
ListViewItem clickedItem = listView1.GetItemAt(p.X, p.Y);
if (clickedItem != null)
clickedItem.Selected = true;
在“ListViewItem clickedItem = listView1.GetItemAt(pX, pY);”之后设置断点时 我看到实际上找到了正确的项目。但是,该项目永远不会被选中。我只是看到了奇怪的行为,比如选择了索引 21 的项目(但没有聚焦)而不是单击的项目,例如索引 2000。它的行为就像在 ListView 内部引发了异常。
有谁知道如何选择像素 32767 之外的项目?
解决方案
推荐阅读
- javascript - Angular 2,动态组件的子组件不渲染
- javascript - 覆盖“Safari无法打开页面,因为地址无效”
- javascript - 在我将图表分离到烧瓶应用程序中的另一个目录后,脚本 src 不适用于 chart.js
- powershell - Powershell迭代文本行会引发异常
- android - Android 应用主题更换顺畅
- arrays - 百分比编码超出范围异常
- android - 我想将底部导航和广告修复到底部
- eclipse - 阻止下载 Gradle 和 Maven 依赖项
- tfs - 如何仅合并 TFS 中更改集中的选定文件
- java - java - 如何将新用户条目附加到java中的csv文件?