【问题标题】:How to split datagrid into same rectangles如何将数据网格拆分为相同的矩形
【发布时间】:2012-04-01 11:24:07
【问题描述】:

我有遍历所有单元格的代码,如何使每个 4x4 单元格具有不同的颜色?

这是我的代码:

int c = ran.Next(1, 5);

for (int i = 0; i < box_width; i++)
{
    for (int j = 0; j < box_height; j++)
    {
        switch (c)
        {
            case 1:
                MyClass.grid.Rows[j].Cells[i].Style.BackColor = Color.Yellow;
                break;
            case 2:
                MyClass.grid.Rows[j].Cells[i].Style.BackColor = Color.LightGray;
                break;
            case 3:
                MyClass.grid.Rows[j].Cells[i].Style.BackColor = Color.LightBlue;
                break;
            case 4:
                MyClass.grid.Rows[j].Cells[i].Style.BackColor = Color.Blue;
                break;
        }
    }

}

此代码用随机选择的颜色填充所有网格。我希望它把它分成不同颜色的 X x X 维度。

谢谢

【问题讨论】:

    标签: c# datagrid colors cells


    【解决方案1】:
    int c = ran.Next(1, 5);
    
    for (int i = 0; i < box_width; i += 2)
    {
        for (int j = 0; j < box_height; j += 2)
        {
            Color cellColor;
    
            switch (c)
            {
                case 1:
                    cellColor = Color.Yellow;
                    break;
                case 2:
                    cellColor = Color.LightGray;
                    break;
                case 3:
                    cellColor = Color.LightBlue;
                    break;
                case 4:
                    cellColor = Color.Blue;
                    break;
            }
    
            MyClass.grid.Rows[j].Cells[i].Style.BackColor = cellColor;
            MyClass.grid.Rows[j].Cells[i+1].Style.BackColor = cellColor;
            MyClass.grid.Rows[j+1].Cells[i].Style.BackColor = cellColor;
            MyClass.grid.Rows[j+1].Cells[i+1].Style.BackColor = cellColor;
        }
    }
    

    这假定 box_width 和 box_height 与 DataGridView 中的行数和单元格数相同。

    让我知道这是否适合你,我还没有测试过,但它似乎在我的脑海中。

    但是,如果单元格不是偶数 4x4 倍数,这将引发异常。您确定它们将始终是 4x4 的倍数吗?如果不是,则必须添加错误检查。

    【讨论】:

    • 这很好用。如何使它适合所有屏幕?例如,如果我的屏幕分辨率会给我不同数量的单元格并且在最后一列我只剩下一个而不是两个?我也可以只画那个吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-18
    • 1970-01-01
    • 1970-01-01
    • 2020-05-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多