Vorrei visualizzare qualcosa se la visualizzazione della griglia di dati è lunga e mostra una barra di scorrimento ma non so come controllare se la barra di scorrimento è visibile. Non posso semplicemente aggiungere le righe poiché alcune potrebbero non essere visibili. Non posso utilizzare un evento poiché il mio codice è già presente in un evento.controllare se una barra di scorrimento è visibile in una vista datagrid
risposta
si può provare questo fuori:
foreach (var scroll in dataGridView1.Controls.OfType<VScrollBar>())
{
//your checking here
//specifically... if(scroll.Visible)
}
o
@barlop ringraziamenti :) – terrybozzio
ha finito per utilizzare tale metodo per ottenere una larghezza dati della larghezza corretta, anche se significa incrementare la larghezza della vista dati di uno fino a quando le barre di scorrimento orizzontali non sono visibili http://stackoverflow.com/questions/37635932/calculate-padding-of-datagridview-when-padding-is-greater-than-two Se conosci un modo più efficiente fammi sapere. Ta – barlop
Per determinare se la barra di scorrimento verticale è presente, è necessario verificare quanto sono alte le righe visibili e confrontarle con l'altezza della vista del datagrid.
if(dgv1.Height > dgv1.Rows.GetRowsHeight(DataGridViewElementStates.Visible))
{
// Scrollbar not visible
}
else
{
// Scrollbar visible
}
Anche se per essere più esatti, potrebbe essere necessario includere un controllo della larghezza delle colonne come la presenza di una barra di scorrimento orizzontale, potrebbe creare una barra di scorrimento verticale che altrimenti non c'è.
Il DataGridView
's Scrollbars
Proprietà può essere messa in discussione con il ScrollBars
enumerazione mascherando con quello che ti interessa in questo modo:
if ((dataGridView1.ScrollBars & ScrollBars.Vertical) != ScrollBars.None) ...
nota, che i due 'ScrollBars' sono cose diverse qui!
bene questo programma crea una vista datagrid, che certo non ha barre di scorrimento anche se quella linea mostra come averli http://pastebin.com/raw/vfu6j09T – barlop
Sory, ma non capisco. – TaW
Penso che stavo dicendo che nel codice al collegamento pastebin mostra sempre quella messagebox anche quando il datagridview non ha barre di scorrimento – barlop
preferisco questo uno:
//modif is a modifier for the adjustment of the Client size of the DGV window
//getDGVWidth() is a custom method to get needed width of the DataGridView
int modif = 0;
if (DataGridView.Controls.OfType<VScrollBar>().First().Visible)
{
modif = SystemInformation.VerticalScrollBarWidth;
}
this.ClientSize = new Size(getDGVWidth() + modif, [wantedSizeOfWindow]);
quindi l'unica condizione booleana che serve è:
if (DataGridView.Controls.OfType<VScrollBar>().First().Visible)
{
//want you want to do
}
Bella soluzione. Suggerisco di aggiungere un controllo aggiuntivo perché First() potrebbe generare un'eccezione: 'var vScrollBar = dgvEntity.Controls.OfType
- 1. Controllare se la barra di stato è nascosta o visibile
- 2. È possibile controllare se una notifica è visibile o cancellata?
- 3. La barra di scorrimento verticale non è visibile nel datagrid all'interno di usercontrol nel wpf
- 4. Come verificare se una vista frammento è visibile all'utente?
- 5. Rendere visibile la barra di scorrimento verticale
- 6. Determina se una sottoview è visibile in un UIScrollView
- 7. codice per controllare se una cella di una DataGrid è attualmente modificato
- 8. La barra di scorrimento orizzontale WPF non è visibile
- 9. Come verificare se uno scorrimento è attualmente visibile in WPF DataGrid?
- 10. Evidenziazione Evidenziazione cella in una vista datagrid
- 11. Come abilitare barra di scorrimento/scorrimento su un WPF DataGrid
- 12. linee mulitiple in una cella in una vista datagrid
- 13. Come verificare se una NSWindow è visibile
- 14. Android: ottieni l'area visibile di una vista?
- 15. T-SQL - Controllare se vista è SCHEMABINDING
- 16. Per scoprire se un div ha una barra di scorrimento
- 17. Determina se una vista è all'interno di una visualizzazione Popover
- 18. Controllare se una chiave è l'ultimo elemento in una matrice?
- 19. Controllare se una riga appare sullo schermo prima di forzare lo scorrimento verso di esso?
- 20. Verifica se div è visibile nella finestra?
- 21. Jquery verifica se una qualsiasi div genitore ha una barra di scorrimento
- 22. Una tela con una barra di scorrimento orizzontale in js_of_ocaml
- 23. Controllare se una vista ha caricato da mezzanotte
- 24. Impostazione di una posizione barra di scorrimento
- 25. Controllare elegantemente se una data è ieri
- 26. C# controllare se una directory è nascosta?
- 27. Controllare se una matrice JSON è vuoto
- 28. Larghezza colonna DataGrid WPF Auto e barra di scorrimento
- 29. Controllare se un tipo è una mappa
- 30. Controllare se RecyclerView è scorrevole
bisogno di maggiori dettagli. Cosa hai provato? cosa vuoi esattamente fare? – Alezis
Aggiungo un indicatore accanto alla barra di scorrimento che indica dove sono le informazioni importanti, simile a Visual Studio. – user373864q
Non sono sicuro di cosa intendi esattamente. Hai provato questo http://stackoverflow.com/questions/2685651/how-to-detect-the-vertical-scrollbar-in-a-datagridview-control o semplicemente controllando la proprietà 'Visible' della barra di scorrimento? – Alezis