DataGrid
プロジェクトに選択モードのがあります:FullRowSelect
。ListView
クリックしたセルに長方形(で選択したセルの長方形など)をペイントするにはどうすればよいですか?それとも色を変えますか?
質問する
970 次
1 に答える
0
CellFormattingイベントを処理して、DataGridViewsの色を変更しました。これは、エラーのある行を強調表示するか、特定の列を強調表示するために行います。
私のforminitメソッドには、次のようなものがあります。
dgvData.CellFormatting +=
new DataGridViewCellFormattingEventHandler(dgvData_CellFormatting);
書式設定の方法は次のとおりです。
private void dgvData_CellFormatting(object sender,
DataGridViewCellFormattingEventArgs e)
{
bool inError = false;
// Highlight the row as red if we're in error displaying mode
if (e.RowIndex >= 0 && fileErrors != null && DisplayErrors)
{
// Add +1 to e.rowindex as errors are using a 1-based index
var dataErrors = (from err in fileErrors
where err.LineNumberInError == (e.RowIndex +1)
select err).FirstOrDefault();
if (dataErrors != null)
{
e.CellStyle.BackColor = Color.Red;
inError = true;
}
}
// Set all the rows in a column to a colour, depending on it's mapping.
Color colourToSet = GetBackgroundColourForColumn(dgvData.Columns[e.ColumnIndex].Name);
if (colourToSet != null && !inError)
e.CellStyle.BackColor = colourToSet;
}
特定のセルに対してこれを行うには、コントロールでMouseUpイベントを処理してから、データグリッドビューのHitTestInfoを使用して、ヒットが実際にあったセルを特定する必要がある場合もあります。
于 2012-11-23T07:59:04.963 に答える