2010-01-12 6 views
0

Ici, je veux juste avoir une case à cocher dans mon en-tête listview. et j'ai écrit le code ci-dessous pour cela, quelqu'un peut-il m'aider ici pour activer la case à cocher.Activer listview columHeader checkBox Cliquez sur

Maintenant, je ne pouvais voir que la case à cocher - ne pas cliquer dessus. Est-ce que quelqu'un a une idée à ce sujet, peut-il être géré par l'événement listView3_ColumnClick .. ?? Merci d'avance.

private void listView3_DrawColumnHeader_1(object sender, DrawListViewColumnHeaderEventArgs e) 
    { 

     TextFormatFlags flags = TextFormatFlags.LeftAndRightPadding; 
     e.DrawBackground(); 

     //CheckBoxRenderer.DrawCheckBox(e.Graphics, ClientRectangle.Location, System.Windows.Forms.VisualStyles.CheckBoxState.UncheckedNormal); 
     CheckBoxRenderer.DrawCheckBox(e.Graphics, ClientRectangle.Location, TextRectangle, "", this.Font, TextFormatFlags.HorizontalCenter, clicked, state); 

     e.DrawText(flags); 
    } 

Répondre

0

Je pense que j'ai que

private void listView_ColumnClick(object sender, ColumnClickEventArgs e) 
    { 
     if (!clicked) 
     { 
      clicked = true; 
      state = CheckBoxState.CheckedPressed; 

      foreach (ListViewItem item in listView.Items) 
      { 
       item.Checked = true; 
      } 

      Invalidate(); 
     } 
     else 
     { 
      clicked = false; 
      state = CheckBoxState.UncheckedNormal; 
      Invalidate(); 

      foreach (ListViewItem item in listView.Items) 
      { 
       item.Checked = false; 
      } 
     }   
    } 

wheres state => private CheckBoxState state = CheckBoxState.UncheckedNormal;

Questions connexes