Это то, что вы обычно не должны исправлять.Пользователь щелкнул где-то намеренно, что вполне может быть потому, что он хотел отменить выбор элемента.Если это было непреднамеренно, тогда она поймет, что случилось и знает, как это исправить.Предоставление стандартных элементов управления нестандартным поведением обычно только сбивает с толку пользователя.
Но вы можете это исправить.Вам нужно будет запретить нативному элементу управления ListView видеть щелчок.Для этого необходимо переопределить метод WndProc () и проверить, где произошел щелчок.Добавьте новый класс в ваш проект и вставьте код, показанный ниже.Компиляция.Перетащите новый элемент управления из верхней части панели инструментов на форму.
using System;
using System.Drawing;
using System.Windows.Forms;
class MyListView : ListView {
protected override void WndProc(ref Message m) {
if (m.Msg == 0x201 || m.Msg == 0x203) { // Trap WM_LBUTTONDOWN + double click
var pos = new Point(m.LParam.ToInt32());
var loc = this.HitTest(pos);
switch (loc.Location) {
case ListViewHitTestLocations.None:
case ListViewHitTestLocations.AboveClientArea:
case ListViewHitTestLocations.BelowClientArea:
case ListViewHitTestLocations.LeftOfClientArea:
case ListViewHitTestLocations.RightOfClientArea:
return; // Don't let the native control see it
}
}
base.WndProc(ref m);
}
}