WinForms DataGridView の個々のセルの境界線をプログラムで変更する
-
13-09-2019 - |
質問
WinForms DataGridView の個々のセルの境界線をプログラムで変更する必要があります。ネットで検索していたら、こんなリンクを見つけました(http://bytes.com/groups/net-vb/501128-changing-datagridview-cell-borders-runtime)これは私がやろうとしていることと同じです。ただし、解決策のコード例はありません。
「だから、あなたは DataGridViewCell クラスをオーバーライドし、AdjustCellBorderStyle メソッドをオーバーライドして DataGridViewCell のカスタマイズされたバージョン。次に、このカスタマイズされた DataGridViewの DataGridViewCell です。注記:カスタマイズした DataGridViewCell では、 DataGridViewAdvancedBorderStyle パブリック メンバーを使用して、DataGridView コードで このメンバーの罫線スタイル情報をセルに設定します。次に、 AdjustCellBorderStyle の実装では、この DataGridViewAdvancedBorderStyle パブリック メンバーを呼び出し、対応する DataGridViewAdvancedBorderStyle です。その後、DataGridView PaintCells はこれを使用して次のことができます。 セルをペイントします。
このソリューションの実装を理解するのに苦労しています。誰かが上記を動作する VB.Net コードに翻訳し、個々のセルの境界線を変更するためにそれを呼び出す例を提供していただけますか?
解決
これは、背景色を設定する追加機能の中に隠されているだけで、必要なことを実行する既製の例です。
http://www.codeproject.com/KB/grid/hulihui_CustomDataGridVie.aspx
線を探してください
// must draw border for grid scrolling horizontally
e.Graphics.DrawRectangle(gridPenColor, rect1);
この線はセルの境界線を描画するため、個々のセルの境界線を変更するには、境界線を記述したいプロパティを含めるようにイベント引数 (CellBackColorEventArgs クラス) を変更します。次に、DrawCellBackColor メソッドで、渡されたプロパティ (およびセル内に描画したいその他のもの) に基づいて境界線を描画します。