DataGridView - problém s písmem a MinimumWidth   otázka

VB.NET, WinForms

Ahoj, narazil jsem na dvě nepříjemnosti. Obě se týkají dataGridViewu, ale jinak spolu vzájemně nesouvisejí.

1) Vzhled dataGridViewu jsem nastavoval pomocí AlternatingRowsDefaultCellStyle a DefaultCellStyle v properties. Vzhled je tak jak má být až na to, že se mi samovolně nastavuje tučné písmo (bold=true). Někdy se to projeví u defaultCell i alternatingCell, někdy jen u jedné z nich. Projevuje se to tak, že nastavím písmo bold=false zkompiluju projekt a vše je ok. Pokud ale projekt zkompiluju podruhé, automaticky naskočí tučné písmo a to i v případě, že s tímto dataGridViewem nic nedělám. Dělá to jen u některých DataGridView v aplikaci. Rozhodně ne u všech. Ručně jsem nic v automaticky generovaných souborech neměnil.

2) Mám nastaveno AutoSizeColumnsMode=Fill a chtěl jsem nastavit MinimumWidth každého sloupce. Nastavení dělám takto:

        'naplnění dgv daty
        dtHledatData = vyhledatData(ID)
        Me.dgv1.DataSource = dtHledatData



        'formát DGV
        Me.dgv1.Columns(1).DefaultCellStyle.Format = "MM'/'yyyy" 'období-pouze měsíc a rok
        Me.dgv1.Columns(2).DefaultCellStyle.Format = "MM'/'yyyy" 'období-pouze měsíc a rok
        Me.dgv1.Columns(3).DefaultCellStyle.Format = "C" 'měna
        Me.dgv1.Columns(4).DefaultCellStyle.Format = "C" 'měna
        Me.dgv1.Columns(5).DefaultCellStyle.Format = "dd'/'MM'/'yyyy HH:mm:ss" 'datum a čas


        'MIN šířky sloupců DGV
        Me.dgv1.Columns(0).MinimumWidth = 105
        Me.dgv1.Columns(1).MinimumWidth = 105
        Me.dgv1.Columns(2).MinimumWidth = 105
        Me.dgv1.Columns(3).MinimumWidth = 190
        Me.dgv1.Columns(4).MinimumWidth = 190
        Me.dgv1.Columns(5).MinimumWidth = 135

V tomto použití ale vyskočí vyjímka: Object reference not set to an instance of an object.

Nechápu ale proč, protože si myslím že k tomu nemá důvod. Odkazuju se na existující naplněný dataGridView ve kterém jsou data s příslušnými sloupci. Navíc nastavení formátu buněk které je předtím se provede korektně.

Zajímavé také je, že pokud dám kód na nastavení MinimumWidth do nějákého buttonu a použiju ho po načtení dat, nastavení šířky sloupců se bez odmlouvání provede.

Pro úplnost mám Visual Studio 2005 Profesional a aplikace je na -Net 2.

Nesetkal jste se někdo s těmito zvláštnostmi?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ad 1 - nic mě nenapadá, možná to je bug ve Visual Studiu. Zkontrolujte, jestli se nějak nepřepisuje ten automaticky generovaný kód a jestli v něm nenajdete nějaký problém.

Ad 2 - na kterém konkrétním řádku to tu chybu vyhazuje? Obecně může být Nothing v dgv, dgv1.Columns(1) až dgv1.Columns(5) a každý z nich může mít Nothing ve vlastnosti DefaultCellStyle atd.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Chybu to vyhodí na řádku:

Me.dgv1.Columns(0).MinimumWidth = 105

Pokud ho zakomentuju vyhodí to chybu na následujícím řádku atd.

dgv1.columns(x) by neměl být nothing, normálně se mi zobrazí a navíc nastavení formátu které volám na stejné sloupce těsně před nastavení minSize normálně funguje. Přepokládám, že kdyby byl nějáký sloupec nothing tak by to vyhodilo vyjímku už při pokusu o nastavení formátování (neexistujícího) sloupce.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback