Kuinkas saan säädettyä datagridistä pelkästään yhden sarakkeen leveyttä tai vielä parempi onko jotain keinoa saada kaikki sarakkeet automaattisesti sen levyiseksi että niiden solujen tekstit näkyy kokonaan.
vb.net datagrid1
Puolikas
5214
0Äänestä
Muut lukivat myös
Odottaa vastausta
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
Vastaukset 5
Vanhimmat
Yksi keino on iteroida läpi kaikki sarakkeen rivit, mitata tekstin pituus pikseleinä ja ottaa aina suurin talteen. Ja kun kaikkien rivien leveys on mitattu onkin helppo asettaa sarakkeen leveys sopivaksi.
vielä kuinka saan sen yksittäisen sarakkeen leveyden muutettua? Pahoittelen tyhmyyttäni, yritän päästä siitä eroon kyselemällä muilta..
Ilmeisesti jotain datagrid1.??
Voi hitsi piti joskus itekin tapella noiden kans mutta kun ei oikein tahdo enää muistaa.
Noita leveyksiä kaiketi pitää muokata taulujen tyylien kautta. Elikkäs tee tauluille tyylit(DataGridTableStyle) datagridiin joko editorilla tai ohjelmallisesti. Ja jokaiselle taulun tyylille saraketyylit jokaista saraketta kohden (DataGridColumnStyle)
Sen jälkeen voit ohjelmallisesti asettaa sarakkeen leveyden niinkin helposti kuin:
DataGrid1.TableStyles("taulu1").GridColumnStyles("sarake1").Width
Sitten summittainen ohje sopivan sarakkeenleveyden määrittämiseen.
Tehään tommonen graafinen objekti valitulla fontilla ja tekstillä ja katotaan sen leveys pikseleinä
Dim bm As System.Drawing.Bitmap
Dim g As System.Drawing.Graphics
Dim textSize As SizeF
bm = New Bitmap(1, 1, System.Drawing.Imaging.PixelFormat.Format32bppArgb)
g = Graphics.FromImage(bm)
textSize = g.MeasureString(CStr(DataGrid1.Item(row, column)), DataGrid1.font)
textSize.Width on sitten se leveys minkä otat talteen jne
vaan paljon avusta