\

Školení Návrhové vzory, OOP a UML


 Wednesday, September 13, 2006
Windows Forms DataGridView - nevykreslování záhlaví sloupce
.Net Framework

V .Net konferenci na serveru builder se objevil dotaz, jak skrýt záhlaví (header) sloupce v DataGridView. Kolegové, zvyklí pravděpodobně stále na poněkud nehrabaný DataGrid z verze 1.x .Net Frameworku, radili vytvořit nový sloupec a nové záhlaví.

Nejjednodušší řešení ale představuje odchycení události CellPainting DatagridView a a v ní zamezíte vykreslení sloupce nastavením vlastnosti Handled na true. DataGridView má ale mnohem lepší objektový model než DataGrid a jednoduchých změn ve vykreslování DataGridView dosáhneme rychle v obsluze událostí CellPainting, RowPrePaint, RowPostPaint a dalších.

        const int hiddenRowIndex = -1; //záhlaví má index -1
        const int hiddenColumnIndex = 0; //skryjeme první sloupec

        private void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
        {
            if (e.RowIndex == hiddenRowIndex && e.ColumnIndex == hiddenColumnIndex)
            {
                e.Handled = true;
            }
        }

Update : Samozřejmě nemusíte zcela rezignovat na vykreslení buňky a chcete vybarvit alespoň její pozadí.

Opět je to jednoduché - vyplníme pozadí a nastavíme e.Handled na true

e.Graphics.FillRectangle(myColor, e.CellBounds);

e.Handled = true;



Wednesday, September 13, 2006 5:17:52 PM (Central Europe Standard Time, UTC+01:00)       
Comments [0]  .NET Framework | Windows Forms


 Monday, September 11, 2006
Fórum o OOP, UML, návrhových vzorech, MDA, DSL ... - chtěli byste?

Nadpis vyjadřuje v kostce vše. Hraji si právě teď s překladem a nastavením YetAnotherForum a napadlo mě, že bych na doméně forum.renestein.net spustil fórum, kde bychom společně diskutovali o návrhu aplikací, systémovém designu, OOP, UML, Model Driven Architecture, DSL, zuřivě bychom se hádali nad best practices, vášnivě "flamovali" nad podporou OOP v různých programovacích jazycích :) nebo bychom si vyměňovali linky na zajímavé články. Pro každé větší téma by existovalo samostatné fórum.

Vím. že některá česká fóra se OOP a analýzou zabývají, ale kvůli svému neodvolatelně  finálním stavu  "mrtvé" fórum s občasnými "self" přechody, spuštěnými přijetím jedné OT zprávy s nabídkou domácích zásob viagry nějakého momentálně insolventního a celoživotně impotentního spammera, se v nich nic zajímavého neděje.

Takže - máte zájem? :) 



Monday, September 11, 2006 2:55:02 PM (Central Europe Standard Time, UTC+01:00)       
Comments [19]  Návrhové vzory | Ostatní | UML


Programátorská hádanka - 11.9.2006

Máte jednoduchý (a dnes bych řekl dokonce až urážlivě triviální) kód. ;-) A cituji jednoduchou otázku Mistra kódování a alžbětinského Sira W. Shakespeara - Jak se vám líbí?

class MessageQueue
 {
   private static object messageLock = new object();
   private List<Message> list;
    
    public MessageQueue()
    {
      list = new List<Message>();
    }

     public void RemoveMessage(Message message)
     {
         lock (messageLock)
         {
             list.Remove(message);
         }
     }
  }



Monday, September 11, 2006 1:31:35 PM (Central Europe Standard Time, UTC+01:00)       
Comments [2]  Programátorské hádanky