2010-11-17 4 views
2

Comment puis-je vérifier si une barre de défilement est présente dans une vue de données dans Winforms.C# barre de défilement identifiant sur le contrôle

Quelque chose comme (pseudocode)

If(datagridview.verticalscrollbar = true) 
do something...... 

Merci.

+2

WPF? WinForms? ASP.Net? Silverlight? Quel contrôle? – SLaks

+0

Salut, c'est Winform. Avoir modifié le message original. –

+0

Darren - vous avez jusqu'à _5_ tags à utiliser. S'il vous plaît utiliser plus d'un. – Oded

Répondre

1

Dans une vue Datagrid, il existe des commandes spéciales pour les barres de défilement - pas comme dans un panneau habituel.

Vous pouvez faire sth. comme

private VScrollBar _verticalScrollBar; 
private HScrollBar _horizontalScrollBar; 

foreach (Control c in _dataGridView.Controls) 
    { 
     if (c is VScrollBar) 
     { 
      _verticalScrollBar = c as VScrollBar; 
      if (_horizontalScrollBar!=null) 
      { 
       break; 
      } 
     } 
     if (c is HScrollBar) 
     { 
      _horizontalScrollBar = c as HScrollBar; 
      if (_verticalScrollBar != null) 
      { 
       break; 
      } 
     } 
    } 

et tester si la barre de défilement est visible avec

if(_verticalScrollBar.Visible==true){ 
//do something you want when scrollbar is visible 
} 
else 
{ 
//do something when scrollbar is invisible 
} 
+0

C'est génial. Fonctionne comme un charme .... merci. –

4

Il n'y a pas propriété ou méthode spécialement à cet effet, mais vous pouvez dire si la barre de défilement vertical montre en effectuant le contrôle suivant:

bool scrolling = (dataGridView.DisplayedRowCount(false) != dataGridView.Rows.Count); 

(Il compare le nombre total de lignes avec le nombre actuellement en cours Si aucune correspondance n'apparaît, une barre de défilement sera visible.)

+1

Excellent .... Merci. –

+0

Je l'ai utilisé pour les colonnes. merci –

Questions connexes