Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Transparentna selekcija u DataGridView????

[es] :: .NET :: Transparentna selekcija u DataGridView????

[ Pregleda: 1414 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

zoranpro
Zoran Protic
student
Beograd

Član broj: 171576
Poruke: 11
80.70.240.*



Profil

icon Transparentna selekcija u DataGridView????09.04.2009. u 11:32 - pre 152 meseci
Pozdrav,
hteo bih da postavim da selekcija u DataGridView bude u boji koja transparentna (npr. transparentno plava).
Probao sam razne varijantne i kada probam da postavim da boja bude transparentna selekcija bude u crnoj boji...
Da li neko ima ideju kako bi mogao da resim problem?
Evo kod koji sam probao:

Code:
 

public MyDataGrid()
        {
            InitializeComponent();

            Color paternColor = Color.Blue;
            Color backColor = Color.FromArgb(45, paternColor.R, paternColor.G, paternColor.B);

            DataGridViewCellStyle cellStyle = new DataGridViewCellStyle();
            cellStyle.SelectionBackColor = backColor;
            cellStyle.SelectionForeColor = Color.Black;
            DefaultCellStyle = cellStyle;
            DoubleBuffered = true;
        } 



protected override void OnCellPainting(DataGridViewCellPaintingEventArgs e)
        {
          
                Color paternColor = Color.Blue;
                Color backColor = Color.FromArgb(45, paternColor.R, paternColor.G, paternColor.B);

                using (Brush backBrush = new SolidBrush(backColor))
                {
                    e.Graphics.FillRectangle(backBrush, e.CellBounds);

                }
            
        }

 
 
Odgovor na temu

deerbeer
Beograd

Član broj: 174418
Poruke: 1189
*.adsl-1.sezampro.yu.



+395 Profil

icon Re: Transparentna selekcija u DataGridView????09.04.2009. u 12:48 - pre 152 meseci
Pogledaj ovde :
http://msdn.microsoft.com/en-u...viewcellpaintingeventargs.aspx
Obrati paznju na e.Handled = true ; sto govori da je crtanje zavrseno tj . da se ne poziva sistemsko iscrtavanje(farbanje) celije .
Takodje sve moras odraditi rucno kroz GDI funkcije (fokus selekcije , farbanje unutrasnjosti celije, crtanje string-a itd).

Viva lollapalooza
 
Odgovor na temu

zoranpro
Zoran Protic
student
Beograd

Član broj: 171576
Poruke: 11
80.70.240.*



Profil

icon Re: Transparentna selekcija u DataGridView????09.04.2009. u 12:59 - pre 152 meseci
Moja varijanta je radila za bilo koju boju ali koja nije transparentna, cim stavim da ima malo transparentnosti sve celije postaju crne, dok su ovako u boji koja mi treba. kad postavim da je e.Hadled = true bukvalno moram sve da crtam... Da li postoji neko drugo resenje?
 
Odgovor na temu

deerbeer
Beograd

Član broj: 174418
Poruke: 1189
*.adsl-1.sezampro.yu.



+395 Profil

icon Re: Transparentna selekcija u DataGridView????09.04.2009. u 13:22 - pre 152 meseci
Pa tesko da ces na taj nacin uspeti .
Mozes da probas da dodas stil WS_EX_TRANSPARENT tvom DataGrdiView-u.
http://www.bobpowell.net/transcontrols.htm

Ali u tom slucaju dobijas potpunu transparentnost prozora tj. tvog Grid-a
ali ne mozes menjati njegov alfa kanal za prikaz tj. semitransparentnost.

Ovakve pikanterije mozes jedino ako primenis WS_EX_LAYERED stil tvom prozoru uz pomoc UpdateLayeredWindow api funkcije :
http://msdn.microsoft.com/en-us/library/ms997507.aspx
ali cisto sumnjam da ce to raditi na DataGridView-u tj. na njegovim celijama
vec samo na obicnim prozorima koji koriste 32 bitne bitmape ili png-ove za layout .

Viva lollapalooza
 
Odgovor na temu

zoranpro
Zoran Protic
student
Beograd

Član broj: 171576
Poruke: 11
80.70.240.*



Profil

icon Re: Transparentna selekcija u DataGridView????09.04.2009. u 14:34 - pre 152 meseci
Ovo mi ne zavrsava posao... Ono sto meni i dalje nije jasno zasto se prikazuje crna boja kad postavim da ima malo transparentnosti????
 
Odgovor na temu

[es] :: .NET :: Transparentna selekcija u DataGridView????

[ Pregleda: 1414 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.