Gå til innhold

Anbefalte innlegg

Heisann!

 

Jeg har et Form, med bl.a en dataGrid inni. I dataGriden finnes det en gjeng kolonner, som kanskje er større eller mindre enn det synlige området i dataGriden. Ved oppstart (Form.VisibleChanged) kjører jeg denne koden for justere størrelsen på vinduet:

  public void AdjustWindowWidth()
 {
 	int i = 0;
 	// Create a HScrollBar to have something to look for 
 	HScrollBar h = new HScrollBar();
 	
 	// Find index of Hscrollbar in the dataGrid
 	for (i = 0; i < dataGrid1.Controls.Count; i++)
 	{
   if (dataGrid1.Controls[i].GetType() == h.GetType())
   	break;
 	}
 	// While HScrollBar is Visible, the window isn't big enough!
 	while (dataGrid1.Controls[i].Visible == true)
 	{
   this.Width += 1;
 	}
 }

 

Finnes det en bedre måte å gjøre det på?

Lenke til kommentar
  • 2 uker senere...
Videoannonse
Annonse

Jeg er ikke helt sikker på hav du prøver, med mindre du har laget en scrollbar som du gjemmer med kode et annet sted.

 

Utenom det så har jeg noen kommentarer på koden

 

bytt ut for(i...) med

foreach(Control c in dataGrid1.Controls)

 

og istedet for å lage en ScrollBar, bare gjør slik

if(c.GetType() == typeof(HScrollBar))

 

altså:

public void AdjustWindowWidth()
{
 // Find index of Hscrollbar in the dataGrid
 foreach(Control c in dataGrid1.Controls)
  if (c.GetType() == typeof(HScrollBar))
   break;

 // While HScrollBar is Visible, the window isn't big enough!
 while (c.Visible == true)
 {
  this.Width++;
 }
}

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...