2017-11-13 68 views
0

私はデフォルトで列見出しの色を変更しました。今、私はそれがソートされますときに、WindowsフォームのC#のDataGridViewの中で「並べ替えグリフアイコン」色を変えたい:WindowsフォームC#のDataGridViewで '並べ替えグリフアイコン'の色を変更するには?

enter image description here

は、上の写真を参照してください。列はソートされていますが、アイコンの色は視認性が不十分です。

色を変更できるかどうか教えてください。ありがとう!

答えて

0

ソートアイコンの色を変更するプロパティはありません。変更するオプションとして、CellPaintingイベントを処理して、自分でセルを描画することができます。列ヘッダーを描画

private void dgv1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e) 
{ 
    var grid = (DataGridView)sender; 
    var sortIconColor = Color.Red; 
    if (e.RowIndex == -1 && e.ColumnIndex > -1) 
    { 
     using (var b = new SolidBrush(BackColor)) 
     { 
      //Draw Background 
      e.PaintBackground(e.CellBounds, false); 

      //Draw Text 
      TextRenderer.DrawText(e.Graphics, string.Format("{0}", e.FormattedValue), 
       e.CellStyle.Font, e.CellBounds, e.CellStyle.ForeColor, 
       TextFormatFlags.VerticalCenter | TextFormatFlags.Left); 

      //Draw Sort Icon 
      if (grid.SortedColumn?.Index == e.ColumnIndex) 
      { 
       var sortIcon = grid.SortOrder == SortOrder.Ascending ? "▲":"▼"; 
       TextRenderer.DrawText(e.Graphics, sortIcon, 
        e.CellStyle.Font, e.CellBounds, sortIconColor, 
        TextFormatFlags.VerticalCenter | TextFormatFlags.Right); 
      } 

      //Prevent Default Paint 
      e.Handled = true; 
     } 
    } 
} 
+0

は、使用できる唯一のソリューションです。答えは例ですので、ソートアイコンには▲と▼を使いました。 'FillPolygon'や' FillPath'を使って簡単に描画できます。答えを適用する際に問題がある場合は教えてください。 –

関連する問題