【问题标题】:How to override cell colors by cellFormatting Telerik如何通过 cellFormatting Telerik 覆盖单元格颜色
【发布时间】:2012-10-29 04:16:53
【问题描述】:

我在 Telerik,我正在尝试格式化 col 值。列索引号12 已经被赋予了颜色(它有效),然后我想寻找一个特定的值,如果它存在然后更改单元格颜色。如果单元格值为 4354,则更改单元格颜色....但没有任何反应。 下面的代码有什么错误???

private int cellValue = 4354;

for (int i = 0; i < TelerikRadGridView.Rows.Count; i++)
 {
 if (TelerikRadGridView.Rows[i].Cells[i].Value == (object)cellValue)
      {
            e.CellElement.BackColor = Color.Gold;
         }
   }

这是完整的代码:

private int cellValue = 4354;
private void TelerikRadGridView_CellFormatting(object sender, CellFormattingEventArgs e)
    {

        e.CellElement.ResetValue(LightVisualElement.DrawFillProperty, ValueResetFlags.Local);
        e.CellElement.ResetValue(LightVisualElement.NumberOfColorsProperty, ValueResetFlags.Local);
        e.CellElement.ResetValue(LightVisualElement.GradientStyleProperty, ValueResetFlags.Local);
        e.CellElement.ResetValue(LightVisualElement.BackColorProperty, ValueResetFlags.Local);

        if (dontRunHandler == false)
            {
                if (e.CellElement.ColumnIndex != 2 
                && e.CellElement.ColumnIndex != 3 
                && e.CellElement.ColumnIndex != 4
                && e.CellElement.ColumnIndex != 5 
                && e.CellElement.ColumnIndex != 7 
                && e.CellElement.ColumnIndex != 11 
                && e.CellElement.ColumnIndex != 12 
                && e.CellElement.ColumnIndex != 13) return;
                e.CellElement.DrawFill = true;
                e.CellElement.NumberOfColors = 1;
                e.CellElement.BackColor = Color.LightSlateGray;
                e.CellElement.GradientStyle = GradientStyles.Linear;
            }
            for (int i = 0; i < TelerikRadGridView.Rows.Count; i++)
            {
                if (TelerikRadGridView.Rows[i].Cells[i].Value == (object)cellValue)
                {
                    e.CellElement.BackColor = Color.Gold;
                }
            }

【问题讨论】:

  • 你现在知道常规了:)。让我知道我的解决方案是否适合您。如果没有,聊天时间。

标签: c# .net winforms telerik radgridview


【解决方案1】:

为你重写了它,所以它会做你想做的事:

private int cellValue = 4354;
private void TelerikRadGridView_CellFormatting(object sender, CellFormattingEventArgs e)
{
    e.CellElement.ResetValue(LightVisualElement.DrawFillProperty, ValueResetFlags.Local);
    e.CellElement.ResetValue(LightVisualElement.NumberOfColorsProperty, ValueResetFlags.Local);
    e.CellElement.ResetValue(LightVisualElement.GradientStyleProperty, ValueResetFlags.Local);
    e.CellElement.ResetValue(LightVisualElement.BackColorProperty, ValueResetFlags.Local);

    if (dontRunHandler == false)
    {
        if (e.CellElement.ColumnIndex != 2 
        && e.CellElement.ColumnIndex != 3 
        && e.CellElement.ColumnIndex != 4
        && e.CellElement.ColumnIndex != 5 
        && e.CellElement.ColumnIndex != 7 
        && e.CellElement.ColumnIndex != 11 
        && e.CellElement.ColumnIndex != 12 
        && e.CellElement.ColumnIndex != 13) return;
        else
        {
           if(e.CellElement.Value != null)
           {
               if (Double.Parse(e.CellElement.Value.ToString()) != cellValue)
               {
                   e.CellElement.DrawFill = true;
                   e.CellElement.NumberOfColors = 1;
                   e.CellElement.BackColor = Color.LightSlateGray;
                   e.CellElement.GradientStyle = GradientStyles.Linear;
               }
               else
               {
                   e.CellElement.DrawFill = true;
                   e.CellElement.NumberOfColors = 1;
                   e.CellElement.BackColor = Color.Gold;
                   e.CellElement.GradientStyle = GradientStyles.Linear;
               }
           }
        }
    }

【讨论】:

  • 我将 BackColor 更改为 ?: 表达式并避免使用 DrawFill 等重复代码。
  • 当我使用上述内容时,我收到一条错误消息Target Invocation Exception was unhandled这可能是因为我正在使用 bool 变量,在高级视图中我禁用所有彩色列的原因。跨度>
  • 在哪一行代码中出现异常?你在和后台工作人员一起工作吗?如果这样做,则必须在 ProgressChange 或 RunWorkerCompletet 事件中更改 UI。
  • Vloxxity:我没有使用后台工作者。我得到了例外,在使页面可见例如: tespage.visible = true;
  • 我今天晚上会看到你关于我遇到的技术问题,谢谢你:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多