Just nu i M3-nätverket
Gå till innehåll

Custommarkering i datagridview


Dertomo

Rekommendera Poster

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

 

Länk till kommentar
Dela på andra webbplatser

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

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...