我有一個Winform應用程序,我正在爲朋友修改。它有一個列表視圖,並希望我爲每行添加一個複選框並使它們互斥。所以在我測試如何使它工作的時候,我發現了一個奇怪的行爲,而跳着的人可以告訴我我錯過了什麼。ListView複選框行爲
如果我顯示沒有選中複選框的列表視圖。當我點擊右邊的複選框時,我無法檢查,但行劑量被選中。如果我點擊列中的項目(在這種情況下的名稱),它會被檢查和選擇。
無論我點擊哪一行,任何未選定行的複選框都將被取消選中。這是我的小測試程序。我使用.NET 4
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e) {
TestListView.Items.Add("Bob");
TestListView.Items.Add("Ann");
TestListView.Items.Add("Frank");
}
void TestListView_MouseClick(object sender, System.Windows.Forms.MouseEventArgs e) {
ListViewItem currentItem = TestListView.GetItemAt(e.X, e.Y);
if (currentItem != null) {
foreach (ListViewItem item in TestListView.Items) {
if (item.Text == currentItem.Text) {
item.Checked = true;
item.Selected = !currentItem.Selected;
}
else
item.Checked = false;
}
}
}
}
太棒了!終於這爲我工作!複選框已被禁用。但在行選擇它的切換! :( – Raghavendra 2015-03-13 09:16:04