Just nu i M3-nätverket
Jump to content

Custommarkering i datagridview


Dertomo

Recommended Posts

Hej!

 

Jag har en datagridview med selectionmode = fullrowselect. Det är precis så jag vill ha det. Min tanke är nu att jag vill göra det hela lite snyggare och tänkte därför rita min egen markering. Tex en fade från en färg till en annan (LinearGradient).

 

Jag har hittat något enstaka exempel på hur man kan rita i enskilda celler... men för en hel rad. hur gör man? Klickar man på en annan rad ska ju självklart föregående markering försvinna. Ser om möjligt gärna ett kodexempel på detta.

 

mvh Tommy

 

Link to comment
Share on other sites

Visst är det väl konstigt... Man kan sitta i 3 timmar och försöka lösa något men sen kommer en ny dag och då tar det 10 minuter.

 

Här är min lösning (Om nu någon annan undrar samma sak). Det blev faktiskt väldigt bra.


private void dgvPersoner_CellClick(object sender, DataGridViewCellEventArgs e)
       {
           dgvPersoner.CellPainting += new DataGridViewCellPaintingEventHandler(dgvPersoner_CellPainting);

       }

       private void dgvPersoner_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
       {
           if ((e.RowIndex != -1)&&(e.ColumnIndex != 4) &&(e.ColumnIndex != 3)&& (e.State & DataGridViewElementStates.Selected) == DataGridViewElementStates.Selected)
           {
               // fill gradient background 
               Brush gradientBrush = new System.Drawing.Drawing2D.LinearGradientBrush(
               e.CellBounds, Color.Black, Color.DarkOliveGreen,
               System.Drawing.Drawing2D.LinearGradientMode.Vertical);
               e.Graphics.FillRectangle(gradientBrush, e.CellBounds);
               gradientBrush.Dispose();

               // paint rest of cell 
               e.Paint(e.CellBounds, DataGridViewPaintParts.Border |
               DataGridViewPaintParts.ContentForeground);
               e.Handled = true;
           }
       } 

 

Nu fyller den en hel rad med en fade:ad färg. Kan tillägga att kolumn 3 och 4 i min datagridview är button-celler. Därför exkluderar jag dem i villkoret för vilka celler som ska ritas på.

 

MVH Tommy

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...