Gå til innhold

Anbefalte innlegg

Skrevet

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å?

  • 2 uker senere...
Videoannonse
Annonse
Skrevet

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++;
 }
}

Skrevet

Bruker nå VS 2005 Beta 2, og der har DataGrid blitt byttet ut med DataGridView. Den kan tilpasses automatisk, så jeg slipper å bry meg om størrelsen på vinduet, og om datagriden passer...

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å
×
×
  • Opprett ny...