Visual Studio 2008 で Window CE 5 プログラムを開発しています。
私のフォームの 1 つで DataGrid コントロールを使用することにより、いくつかの条件に応じて各行の背景と前景色を変更する必要があります。これを行うために、私はこのクラスを使用します:
public class ColoredDataGridTextBoxColumn : DataGridTextBoxColumn
{
public Color BackgroundColor { get; set; }
public Color ForeColor { get; set; }
public ColoredDataGridTextBoxColumn()
{
BackgroundColor = Color.White;
ForeColor = Color.Black;
}
protected override void Paint(Graphics g, Rectangle bounds, CurrencyManager source, int rowNum, Brush backBrush, Brush foreBrush, bool alignToRight)
{
backBrush = new SolidBrush(BackgroundColor);
base.Paint(g, bounds, source, rowNum, backBrush, foreBrush, alignToRight);
}
}
グリッドの行と列を作成するには、次の方法を使用します。
var dataTable = new DataTable();
dataTable.Columns.Add(new DataColumn("ّFirstName", typeof(string)));
var tableStyle = new DataGridTableStyle();
var tbcFirstName = new ColoredDataGridTextBoxColumn
{
Width = 65,
MappingName = "FirstName",
HeaderText = "نام"
};
var tableStyle = new DataGridTableStyle();
dgDeliverData.TableStyles.Clear();
dgDeliverData.TableStyles.Add(tableStyle);
for (int index = 0; index < LstMemberNames.Length; index++)
{
var memberName = LstMemberNames[index];
var row = dataTable.NewRow();
row["FirstName"] = memberName;
dataTable.Rows.Add(row);
}
dgDeliverData.DataSource = dataTable;
たとえば、「member1」と等しいrow
場合、背景色と前色を変更したい。memberName