Toon posts:

[vb.net/Winforms] datagrid column breedte aanpassen*

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb hier een datagrid voor me, en ik heb daar enkele kolommen en rijen in, nou zijn die kolommen allemaal even breed, dit uis dus niet goed. Hoe kan ik de breedte van iedere kolom apart veranderen? Allemaal tegelijk weet ik wel.

Dit is de source die de gegevens invult:
code:
1
2
3
4
5
6
7
8
9
10
11
Dim dt As New System.Data.DataTable("Kassa")
dt.Columns.Add(ID)
dt.Columns.Add(New DataColumn("Code", GetType(String)))
dt.Columns.Add(New DataColumn("Beschrijving", GetType(String)))
dt.Columns.Add(New DataColumn("Aantal", GetType(Integer)))
dt.Columns.Add(New DataColumn("Prijs per Stuk", GetType(Integer)))
dt.Columns.Add(New DataColumn("BTW", GetType(Integer)))
dt.Columns.Add(New DataColumn("Subtotaal", GetType(Integer)))
dt.Columns.Add(New DataColumn("Totaal", GetType(Integer)))
dt.Rows.Add(New Object() {1, "34012345", "bl", 1, 100, 19, 119, 119})
DataGrid1.DataSource = dt

  • whoami
  • Registratie: December 2000
  • Laatst online: 21-08 22:54
Een BoundColumn heeft een Style property, en daarbinnen een width property.

Ga aan je dataGrid kolommen gaan toevoegen voor de columns in je datatable die je wilt zien, en zet die width-property p de gewenste waaarde.

[ Voor 50% gewijzigd door whoami op 19-08-2003 11:31 ]

https://fgheysels.github.io/


Verwijderd

Topicstarter
whoami schreef op 19 August 2003 @ 11:29:
Een BoundColumn heeft een Style property, en daarbinnen een width property.
ik maak de kolommen en rijen aan als de gebruiker er om vraagd, een deel is onload, maar een deel ook niet (die komt later), dus ik kan zo heel wat minder.
Ga aan je dataGrid kolommen gaan toevoegen voor de columns in je datatable die je wilt zien, en zet die width-property p de gewenste waaarde.
zoals hierboven waarschijnlijk wel uit te halen is, is alles wat ik doe, bij runtime, ik kan dus geen datagrid1 properties meer aanpassen zo..

[ Voor 35% gewijzigd door Verwijderd op 19-08-2003 11:34 ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 21-08 22:54
Je kan in je datagrid at-design time je kolommen gaan toevoegen.
Wil de gebruiker een bepaalde kolom dan niet zien, dan kan je hem gewoon hiden.

Als je toch at runtime je kolommen wilt gaan aanmaken, dan kan je:
code:
1
2
3
BoundColumn bc = new BoundColumn();
bc.DataField = "blaat";
bc.Styles.Width = lengte;

oid doen.

https://fgheysels.github.io/


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Daarnaast vraag ik me af wat een datatable te maken heeft met de width van een column in een datagrid?

Waarbij ik me trouwens afvraag of je niet bepaald of ze visible zijn of niet, ipv ze afhankelijk van de user aan de controlcollection van de datagrid toe te voegen.

(oftewel: wat whoami zegt, waarbij je waarschijnlijk wel een voorkeur zal hebben voor de eerste optie, tenzij je zin hebt om je heel veel te gaan verdiepen in de soorten events en wanneer deze plaatsvinden. :))

[ Voor 92% gewijzigd door gorgi_19 op 19-08-2003 12:08 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
dit is niet mogelijk in vb.net
hij kent alleen maar kolom type: DataColumn
en in die datacolumn zit geen styles of iets dat daar mee te vergelijken in, maar ik ben het nu toch aan het doen zoals je in je 1e post zei:
MSDN maar dit werkt niet echt
4. Click OK to close the collection editor, then re-open it by clicking the ellipsis button next to the TableStyles property.
When you reopen the collection editor, any data tables bound to the control will appear in the drop-down list for the MappingName property of the table style.

5. In the Members box of the collection editor, click the table style.
6. In the Properties box of the collection editor, select the MappingName value for the table you wish to display.
vanaf hier klopt het al niet meer. want mapping name staat niet bij de datagrid1 en in de collection editor, staat niks van Members of Properties...

Ik snap er dus eigenlijk niks meer van :{

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Hint: Een datacolumn hoort in een datatable en heeft absoluut niets met welke vorm van presentatie dan ook te maken.

En het is wel mogelijk in vb.net.
* gorgi_19 kijkt naar de code en het resultaat voor zich...

Bij een datagrid voer je een boundcolumn, templatecolumn, of wat voor column dan ook toe aan de columncollection van het betreffende grid.

[ Voor 54% gewijzigd door gorgi_19 op 19-08-2003 12:11 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
gorgi_19 schreef op 19 August 2003 @ 12:09:
Hint: Een datacolumn hoort in een datatable en heeft absoluut niets met welke vorm van presentatie dan ook te maken.

En het is wel mogelijk in vb.net.
* gorgi_19 kijkt naar de code en het resultaat voor zich...

Bij een datagrid voer je een boundcolumn, templatecolumn, of wat voor column dan ook toe aan de columncollection van het betreffende grid.
maar hoe krijg ik dan een bound/template column, ik kan alleen maar normale columns (denk ik)

  • whoami
  • Registratie: December 2000
  • Laatst online: 21-08 22:54
Je verwart een datatable met een datagrid.

Een datatable is een 'container' voor data. Met een datagrid kan je een container met data displayen.
In een DataGrid kan je je data op verschillende manieren weergeven. Kijk eens naar de Columns collectie van je datagrid.

https://fgheysels.github.io/


Verwijderd

Topicstarter
ik zie bij mijn datagrid1 properties alleen maar een tablestyles collection, voor de rest helemaal geen, wel datasource en datamember, maar daar staat allebei "None" bij.
/me is helemaal 8)7 aan het worden ;)

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

* gorgi_19 denkt dat het voor de TS nu wel duidelijk is dat hij voortaan in zijn startpost duidelijk moet maken of hij webforms of winforms gebruikt.

[ Voor 7% gewijzigd door gorgi_19 op 19-08-2003 12:26 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
dus de datatable kan je wel tijdens het runnen maken/veranderen/e.d.
en de datagrid doet niks behalve de datatable weergeven.
en de kolommen vallen onder datagrid

Verwijderd

Topicstarter
gorgi_19 schreef op 19 August 2003 @ 12:25:
* gorgi_19 denkt dat het voor de TS nu wel duidelijk is dat hij voortaan in zijn startpost duidelijk moet maken of hij webforms of winforms gebruikt.
vb.net is toch alleen maar winforms?
webforms wordt (volgens mij) automatisch asp.net

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 19 augustus 2003 @ 12:26:
dus de datatable kan je wel tijdens het runnen maken/veranderen/e.d.
en de datagrid doet niks behalve de datatable weergeven.
en de kolommen vallen onder datagrid
Een datatable heeft kolommen. Een datagrid logischerwijs dus ook.
Ik dnek dat je eerst eens rustig naar de verschillen tussen deze twee moet kijken.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 19 augustus 2003 @ 12:27:
[...]

vb.net is toch alleen maar winforms?
webforms wordt (volgens mij) automatisch asp.net
ASP.Net is geen taal, maar een platform.
Dus je hebt er een ondersteunende taal bij nodig.

Maar je hoeft het er niet bij te zetten.. 'k kan alleen wel een beetje in je nadeel werken, als mensen opeens over de CssClass property gaan beginnen...

[ Voor 21% gewijzigd door gorgi_19 op 19-08-2003 12:29 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • whoami
  • Registratie: December 2000
  • Laatst online: 21-08 22:54
Verwijderd schreef op 19 augustus 2003 @ 12:27:
[...]

vb.net is toch alleen maar winforms?
webforms wordt (volgens mij) automatisch asp.net
Je hebt ASP.NET (webforms) en je hebt winforms.
In beide technologieën is het mogelijk om VB.NET of C# te gebruiken. VB.NET en C# zijn de talen die je kan gebruiken, ASP.NET of WinForms is de technologie.

https://fgheysels.github.io/


Verwijderd

Topicstarter
gorgi_19 schreef op 19 augustus 2003 @ 12:27:
[...]

Een datatable heeft kolommen. Een datagrid logischerwijs dus ook.
Ik dnek dat je eerst eens rustig naar de verschillen tussen deze twee moet kijken.
denk het ook, maar iig zou het wel moeten zijn dat als ik een stuk text lees van MSDN dat het ook moet kloppen en dat het dus moet werken en dat doet het niet, dus toen begon het verwarrend te worden

  • whoami
  • Registratie: December 2000
  • Laatst online: 21-08 22:54
Even zoeken in het property window bracht mij tot hier:

Een datagrid heeft een TableStyles property. Per Table die je toont in je grid, kan je hier een style voor maken lijkt me. Iedere TableStyle heeft een property 'GridColumnStyles'. In zo'n GridColumnStyle kan je je breedte van je column kwijt.

https://fgheysels.github.io/


Verwijderd

Topicstarter
whoami schreef op 19 August 2003 @ 12:39:
Even zoeken in het property window bracht mij tot hier:

Een datagrid heeft een TableStyles property. Per Table die je toont in je grid, kan je hier een style voor maken lijkt me. Iedere TableStyle heeft een property 'GridColumnStyles'. In zo'n GridColumnStyle kan je je breedte van je column kwijt.
thnx, ik heb nu 1 tabel met meerdere kolommen, maar nog 1 klein probleempje, hoe kan ik die tabel in mn datagrid krijgen? ik krijg dit niet voor elkaar en ook niet gevonden in MSDN :{

  • whoami
  • Registratie: December 2000
  • Laatst online: 21-08 22:54
:?
wat bedoel je precies? Wat heb je?

[ Voor 91% gewijzigd door whoami op 19-08-2003 13:25 ]

https://fgheysels.github.io/


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

whoami schreef op 19 August 2003 @ 13:24:
:?
wat bedoel je precies? Wat heb je?
Ik gok dat hij niet weet dat je met datasource en binden aan gang moet.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
whoami schreef op 19 augustus 2003 @ 13:24:
:?
wat bedoel je precies? Wat heb je?
ik heb een datagrid in de Designer.
ga naar properties » tablesstyles » ...
dan krijg ik zo'n scherm, voeg een style toe
in die style, kan ik gridcolumnstyle klikken » collection editor » voeg hire ook een paar dingen toe
en dan zou hij goed moeten zijn, maar hoe kan ik tegen de datagrid zeggen dat hij die ene tablestyle met die kolommen moet gebruiken, want hij geeft nog steeds geen kolommen weer, als ik een rij wil toevoegen kan dat niet omdat er geen kolommen in zitten.

Verwijderd

Topicstarter
gorgi_19 schreef op 19 August 2003 @ 13:25:
[...]

Ik gok dat hij niet weet dat je met datasource en binden aan gang moet.
jawel, daarmee ben ik begonnen, maar zo kan ik geen kolommen toevoegen waarvan ik de breedte bepaal.. of kan dat met de tablestyles e.d. ineens wel? gaat het dan automatisch?

[ Voor 10% gewijzigd door Verwijderd op 19-08-2003 13:30 ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 21-08 22:54
Met die styles voeg je tableStyles en columnStyles toe. Niet de data, maar de manier waarop ze moeten getoond worden dus....

Je zult dan dus nog altijd de datasource property moeten zetten. Logisch toch? Als je niet zegt welke data de datagrid moet tonen, kan hij ook niets tonen...

https://fgheysels.github.io/


  • whoami
  • Registratie: December 2000
  • Laatst online: 21-08 22:54
gorgi_19 schreef op 19 August 2003 @ 13:25:
[...]

Ik gok dat hij niet weet dat je met datasource en binden aan gang moet.
In WinForms moet je niet zelf binden. :Y)

code:
1
dataGrid1.DataSource = dataTable1;

is daar voldoende.
(een WinForms dataGrid zal zelfs geen databind() method hebben denk ik).

https://fgheysels.github.io/


  • whoami
  • Registratie: December 2000
  • Laatst online: 21-08 22:54
Kijk ook eens naar de MappingName property van de DataGridTableStyle en DataGridColumnStyle

https://fgheysels.github.io/


Verwijderd

Topicstarter
Dat heb ik al vanaf het begin (zie 1e post)
dat zou ik toch die kolommen moeten krijgen met een bepaalde breedte of niet dan?
want dat gebeurt dus niet :{

  • whoami
  • Registratie: December 2000
  • Laatst online: 21-08 22:54
Kijk in de help hoe je het moet gebruiken.
Ik heb je hier al een hint gegeven (die MappingName property). In de .NET help staat er een volledig voorbeeld uitgewerkt.
Die help gebruiken is niet lastig hoor. :/

Ik denk dat jij toch eens hoogstnodig een boek moet lezen, en die help moet leren gebruiken.

[ Voor 19% gewijzigd door whoami op 19-08-2003 14:00 ]

https://fgheysels.github.io/

Pagina: 1