Winform C#を初めて使用しています。私は質問がある:DataGridViewのセル内の最初の文字の色を設定する方法はありますか? ありがとうございました!DataGridViewのセルの最初の文字の色を設定します。
答えて
CellPaintingイベントを処理するのが正しい方法です。グリッド列見出しを除いた特定のセルに要件を適用するコードスニペットを次に示します。
private void DataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
{
if (e.Value != null && !string.IsNullOrEmpty(e.Value.ToString()) && e.RowIndex != -1)
{
// Current cell pending to be painted.
var currentCell = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex];
// Cell that needs to be painted. In this case the first cell of the first row.
var cellToBePainted = dataGridView1.Rows[0].Cells[0];
if (currentCell == cellToBePainted)
{
using (Brush customColor = new SolidBrush(Color.Red))
using (Brush cellDefaultBrush = new SolidBrush(e.CellStyle.ForeColor))
{
string fullText = e.Value.ToString();
string firstChar = fullText[0].ToString();
string restOfTheText = fullText.Substring(1);
e.PaintBackground(e.CellBounds, true);
Rectangle cellRect = new Rectangle(e.CellBounds.Location, e.CellBounds.Size);
Size entireTextSize = TextRenderer.MeasureText(fullText, e.CellStyle.Font);
Size firstCharSize = TextRenderer.MeasureText(fullText[0].ToString(), e.CellStyle.Font);
e.Graphics.DrawString(fullText[0].ToString(), e.CellStyle.Font, customColor, cellRect);
if (!string.IsNullOrEmpty(restOfTheText))
{
Size restOfTheTextSize = TextRenderer.MeasureText(restOfTheText, e.CellStyle.Font);
cellRect.X += (entireTextSize.Width - restOfTheTextSize.Width);
cellRect.Width = e.CellBounds.Width;
e.Graphics.DrawString(restOfTheText, e.CellStyle.Font, cellDefaultBrush, cellRect);
}
e.Handled = true;
}
}
}
}
ありがとう、私が特定の細胞を申請したいのであれば、私は何を変更できますか? – quokka
ハンドラ内の現在のセルは、次のように取得できます。var currentCell = dataGridView1.Rows [e.RowIndex] .Cells [e.ColumnIndex]; –
私は最初の答えを更新して、特定のセルを確認しました。 –
- 1. セル内の特定の文字の色を変更します。
- 2. プレースホルダーの最後の文字の色を設定する方法
- 3. DataGridViewの行/セルで複数の背景色のZ-インデックスを設定する
- 4. DataGridViewの新しい行の最初の表示セルを選択します。
- 5. Datagridviewでのセルの書式設定
- 6. RichTextBox:最初の文字の色が異なります。
- 7. jqueryは、テキストエリアの最初の文字にカーソルを設定します。
- 8. Datagridviewすべてのセルの背景色
- 9. JTextPaneは最初の行で文字属性を正しく設定します
- 10. VBA - 文字列から最初の3文字を別のセルにコピーする
- 11. Makefile:文字列の最初の2文字を返します。
- 12. 文字列内の最初の文字を置換します
- 13. 最初の500文字の文字を返します
- 14. 文字列の最初の文字を削除します。
- 15. 文字列の最初の数文字を削除します
- 16. 文字列の最初の文字の大文字/小文字の決定
- 17. 色の変更CSSの最初の6文字のテキスト
- 18. Jupyterノートブックで最初のセルをデフォルトで設定する
- 19. EF6コードを設定する最初の文字列を流暢にnvarchar(最大)
- 20. dataGridView readOnlyの最初の3つの列をtrueに設定する方法
- 21. 最初の文字を大文字にします。 MySQL
- 22. セルの中間色の書式設定
- 23. EditTextの最初の文字大文字
- 24. JavaFX TableViewセルのフォント色を設定していますか?
- 25. datagridviewのセル値を設定するためのインデックスエラー
- 26. Excelから最初の2文字と6桁の数字を抽出し、別のセルにコピーします。
- 27. DataGridviewの色名の文字列を確認する
- 28. 文字列の各文の最初の文字を返します
- 29. Python:リストの最初の文字列の最初の文字を取得しますか?
- 30. Jqgridはセルの背景色を設定しました
いいえ、CellPaintingイベントでセルをオーナー描画する必要があります。 – TaW
あなたの提案をありがとう、私はこれを試してみよう! @TaW – quokka