色名またはカラーコードの文字列があります。したがって、ストリングは、例えば、 Blue
またはff106603
。私がしようとしているのは、適切な色を手前の色としてTelerik RadGridView
に設定することです。私はColor.FromName(string name)
メソッドを使用しようとしましたが、これは色の名前でうまくいきます。しかし、(論理的に)カラーコードでは機能しません。いくつかの研究の後、UInt32.TryParse()
を使って文字列を解析しようとしました。私は今、次のコードを持っています:色名またはカラーコードでグリッドビューの前面色を設定する#
private void gvCustComments_CellFormatting(object sender, CellFormattingEventArgs e)
{
if (e.Row.Cells["Color"].Value != null)
{
UInt32 res;
string color = e.Row.Cells["Color"].Value.ToString().Substring(2);
if (UInt32.TryParse(color, out res))
e.CellElement.ForeColor = Color.FromArgb((int)res);
else
e.CellElement.ForeColor = Color.FromName(e.Row.Cells["Color"].Value.ToString());
}
}
私はグリッドビューで3つの行を持っています。最初はカラーコードff106603
、2番目はRed
、3番目はBlack
です。赤と黒は正常に動作しています。しかし、私はまだ色のコードにいくつかの問題があります。私がそれをデバッグするとき、前の色の値は0, 1, 160, 107
です。これは正しい値ですが、グリッドビューではテキストが表示されません。前の色は濃い緑の代わりに透明に設定されているようです。
私はC#、Telerik、WinForms、および.NET Framework 4.5.2を使用しています。何か案は?
中かっこなしのif文を使用するのは単純ではありません! – colosso
味の問題:p – Roman