在ListViewItems之间的ListView中有1px的空间,它导致我经常错过它们之间的点击。这只发生在ListViewGroup中的ListViewItem。 我录制了视频来展示它:https://mediacru.sh/wSDSRZ5gwJdf/direct 在视频中,我可以在两个项目之间单击,这使得ListViewItem未被选中。 如果我不使用ListViewGroup,则不会发生此问题。
答案 0 :(得分:0)
据我所知,没有这样的财产可以设定。也许你可以自己画ListViewGroup
。或者试着在没有小组的情况下解决它,但这对你来说显然是不方便的。
或者将选择存储在变量中,创建后台工作人员/单击事件以检查ListViewGroup上的按钮单击,如果未选择任何内容,则将其设置回上一个。
答案 1 :(得分:0)
没有这样的属性可以分配这样的值。但是,您可以通过在ListViewItem
事件中绘制每个DrawItem
来自定义列表项。您需要先为此分配OwenerDraw
个事件。
查看msdn
中给出的示例答案 2 :(得分:0)
我现在正在使用此解决方法:
private void lvMain_MouseUp(object sender, MouseEventArgs e)
{
if (lvMain.SelectedItems.Count == 0 && (e.Button == MouseButtons.Left || e.Button == MouseButtons.Right))
{
ListViewItem lvi = lvMain.GetItemAt(e.X, e.Y);
if (lvi == null)
{
// Workaround for 1px space between items
lvi = lvMain.GetItemAt(e.X, e.Y - 1);
}
if (lvi != null)
{
lvi.Selected = true;
}
}
}
如果单击以清空两个项目之间的空格,则检查此位置的一个像素顶部,如果项目存在于此位置,则选择它。