如何將複選框添加到列表中查看c#Winform應用程序中的列標題?
我想在頭部添加複選框,並且如果我在頭選中複選框應該像全選,然後取消選擇所有...就像上面圖片!
我想創建一個複選框,這種類型的ListView頭在C#
如何將複選框添加到列表中查看c#Winform應用程序中的列標題?
我想在頭部添加複選框,並且如果我在頭選中複選框應該像全選,然後取消選擇所有...就像上面圖片!
我想創建一個複選框,這種類型的ListView頭在C#
您可以設置ListView
爲true OwnerDraw
財產和第一列標題繪製ChceckBox
和處理ColumnClick
進行選擇/取消全部選擇。
繪製ListView
你需要處理DrawColumnHeader
,DrawItem
和DrawSubItem
事件。
在DrawColumnHeader
事件中繪製複選框。
e.DrawDefault = true;
爲其他繪圖事件繪製默認渲染。ColumnClick
事件並將列標題的選中狀態存儲在列的標記中。同樣對於每個列表視圖項目,設置Checked
屬性以執行全選/全部取消選擇。代碼:
private void listView1_DrawColumnHeader(object sender,
DrawListViewColumnHeaderEventArgs e)
{
if (e.ColumnIndex == 0)
{
e.DrawBackground();
bool value = false;
try
{
value = Convert.ToBoolean(e.Header.Tag);
}
catch (Exception)
{
}
CheckBoxRenderer.DrawCheckBox(e.Graphics,
new Point(e.Bounds.Left + 4, e.Bounds.Top + 4),
value ? System.Windows.Forms.VisualStyles.CheckBoxState.CheckedNormal :
System.Windows.Forms.VisualStyles.CheckBoxState.UncheckedNormal);
}
else
{
e.DrawDefault = true;
}
}
private void listView1_DrawItem(object sender, DrawListViewItemEventArgs e)
{
e.DrawDefault = true;
}
private void listView1_DrawSubItem(object sender, DrawListViewSubItemEventArgs e)
{
e.DrawDefault = true;
}
private void listView1_ColumnClick(object sender, ColumnClickEventArgs e)
{
if (e.Column == 0)
{
bool value = false;
try
{
value = Convert.ToBoolean(this.listView1.Columns[e.Column].Tag);
}
catch (Exception)
{
}
this.listView1.Columns[e.Column].Tag = !value;
foreach (ListViewItem item in this.listView1.Items)
item.Checked = !value;
this.listView1.Invalidate();
}
}
截圖:
CheckBoxes
屬性ListView
設置爲true。非常感謝你的兄弟... –
@SantoshKokatnur你可以在你的codeproject文章中給Reza Aghaei一些功勞... https://www.codeproject.com/Tips/1083589/Adding-Checkbox-to-a -List-View-Column-Header-in-Cs – Dom84
@ Dom84在codeproject中賦予了Reza功勞。看一看。 –
你見過這[問題](http://stackoverflow.com/questions/5554068/listview-checkbox-selecting-all-deslecting-all-c-sharp-4-0?answertab=votes#tab -最佳) ? – Yog
@Robotnik看看上面的圖像我想添加複選框到列表視圖標題 –
你可以設置'ListView'的OwnerDraw'屬性爲true,並在第一列標題上繪製'ChceckBox'並處理'ColumnClick'以執行選擇/取消選擇所有。 –