C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: DataGridViewカスタム列のプロパティ設定


(過去ログ 130 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■76788 / inTopicNo.1)  DataGridViewカスタム列のプロパティ設定
  
□投稿者/ まさ (1回)-(2015/08/18(Tue) 09:54:01)

分類:[C#] 

下記のサイトを参考にして、DataGridViewカスタム列として横棒グラフを作成ました。
このカスタム列にプロパティを設け、横棒の色を任意設定したいのですが、上手くできません。


色を変更するには、「graphics.FillRectangle」のパラメータ(Brush)を任意の値で設定する必要があることは分かりました。
この値をクラスのプロパティに加え、非バインド列のプロパティから設定しようと努力しまたした、なかなか上手くいきません。

結局、
this.CellTemplate = new DataGridViewBarGraphCell();
した後、Brushを変更してもカスタム列にうまく反映されない、ということに現在行き詰まっております。

アドバイスいただけないでしょうか?




(参考)
DataGridViewのカスタム列タイプの作成 - インターネットコム
http://internetcom.jp/developer/20071211/26.html

引用返信 編集キー/
■76789 / inTopicNo.2)  Re[1]: DataGridViewカスタム列のプロパティ設定
□投稿者/ 魔界の仮面弁士 (446回)-(2015/08/18(Tue) 10:20:18)
2015/08/18(Tue) 10:20:43 編集(投稿者)

No76788 (まさ さん) に返信
> 色を変更するには、「graphics.FillRectangle」のパラメータ(Brush)を任意の値で設定する必要があることは分かりました。

DrawString の部分で『using (SolidBrush brush = new SolidBrush(色))』というコードが使われていますよね。
FillRectangle の際も同様に、Brushes.Red の代わりに、上記の手法でブラシを用意すれば良いでしょう。


> この値をクラスのプロパティに加え、非バインド列のプロパティから設定しようと努力しまたした、なかなか上手くいきません。

グラフの色が全部の行で同じなら、Form 側からあらかじめ
  this.dataGridViewBarGraphColumn1.FillColor = Colors.Red; // FillColor プロパティは自作プロパティ
のように指定できるようにすれば良いと思います。

もしも行ごとに違う値としたいのであれば、その色情報を他の列から
得られるようにするために、DataPropertyName プロパティの動作を真似て
  this.dataGridViewBarGraphColumn1.FillColorPropertyName = "色列"; // 他列の列名を指定
のように、バインド先の列名を指定するプロパティを用意するのは如何でしょう。
引用返信 編集キー/
■76798 / inTopicNo.3)  Re[2]: DataGridViewカスタム列のプロパティ設定
□投稿者/ まさ (3回)-(2015/08/18(Tue) 13:44:06)
No76789 (魔界の仮面弁士 さん) に返信
> DrawString の部分で『using (SolidBrush brush = new SolidBrush(色))』というコードが使われていますよね。

同じコードの中にサンプルがあるとは、とても恥ずかしい思いです。
しかし、このように継承元から値を取得する方法があることを全く知りませんでしたので勉強になりました。

ありがとうございます。
引用返信 編集キー/
■76800 / inTopicNo.4)  Re[3]: DataGridViewカスタム列のプロパティ設定
□投稿者/ ??? (1回)-(2015/08/18(Tue) 15:54:42)
> ありがとうございます。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -