0

私は継承datagridcolumnstyleしており、Paint関数では、レンダリングされている行のセルに基づいていくつかのことを行う必要があります。

たとえば、私は次のようになります。

row 1: color1, name, last name
row 2: color2, name2, last name2
row 3: color3, name3, last name3

名前と名前の列は、色の列で定義された色でペイントする必要があります。

したがって、datagridcolumnstylename2に関連するものが描画されているときは、次のようなことができる必要があります。

protected override void Paint( Graphics g, Rectangle bounds, CurrencyManager source, int rowNum, Brush backBrush, Brush foreBrush, bool alignToRight )
{
Color color = (Color)GetRow( rowNum ).GetCell(color1).Value;
}
4

2 に答える 2

1

これが何であるか、またはそれを機能させる方法はわかりませんが、MicrosoftのDataGridColumnStyleクラスの例から示されている例を次に示します。

protected override void Paint(Graphics g, Rectangle bounds, CurrencyManager source, int rowNum,
    Brush backBrush, Brush foreBrush, bool alignToRight) {
  DateTime date = (DateTime)GetColumnValueAtRow(source, rowNum);
  Rectangle rect = bounds;
  g.FillRectangle(backBrush, rect);
  rect.Offset(0, 2);
  rect.Height -= 2;
  g.DrawString(date.ToString("d"), this.DataGridTableStyle.DataGrid.Font, foreBrush, rect);
}

そのコードスニペットに基づいて、このツールの理由は、指定された座標のセルから値を読み取り、その値に基づいて色を変更するためだと思います。

したがって、値が無効な場合は、セルを赤でペイントできます。

値が保存されていない場合は、フォントを太字にすることができます。

しかし、私が投稿した例は、WindowsMo​​bile用ではありません。

于 2012-07-30T02:02:45.160 に答える
1

私が使用した簡単な解決策は、所有するDatGridへの参照をDataGridColumnStyle作成時にカスタムオブジェクトに渡すことです。これは、コンストラクターまたはプロパティを介して実行できます。次に、の間に行全体にアクセスできますPaint

于 2012-07-31T13:54:42.237 に答える