有没有办法以编程方式调用 DataGridView 中的复选框和列?

山科拉德

我正在制作一个 Excel 验证程序。导入后,将验证每列是否为小数。

在此处输入图片说明

复选框是动态生成的,并使用以下代码表示每个选项卡的数据表中的列(选项卡是 Excel 文件中的工作表):

int dynamicHeight = 0;
int padding = 10;

CheckBox[] chk = new CheckBox[dt.Columns.Count];

for (int i = 0; i <= dt.Columns.Count - 1; i ++)
{


    chk[i] = new CheckBox();
    chk[i].Name = dt.Columns[i].ColumnName;
    chk[i].Text = dt.Columns[i].ColumnName;
    chk[i].AutoCheck = true;
    chk[i].Bounds = new Rectangle(10, 20 + padding + dynamicHeight, 40, 22);
    panelCol.Controls.Add(chk[i]);
    dynamicHeight += 20;
    panelCol.Size = new Size(120, dynamicHeight);
    panelCol.Controls.Add(chk[i]);
    chk[i].Location = new Point(0, dynamicHeight);
    chk[i].Size = new Size(120, 21);
    panelCol.BackColor = Color.White;
    panelCol.AutoScroll = true;
    //panelCol.AutoScrollMinSize = new Size (0, 1200);
}

我想打电话给他们,但也是动态的我正在做的是手动预设每个复选框,如下所示:

chk[0].CheckedChanged += (s, e) =>
{
    decimal num;
    if (chk[0].Checked == true && chk[0].Name.Contains(dt.Columns[0].ColumnName))
    {
        //MessageBox.Show("HELLOW WORLD " + 0);

        for (int i = 0; i < dataGridView1.RowCount; i++)
        {
            if (!Decimal.TryParse(dataGridView1.Rows[i].Cells["January"].Value.ToString(), out num))
            {
                if (dataGridView1.Rows[i].Cells[dt.Columns["January"].ColumnName].Value.ToString() == null || dataGridView1.Rows[i].Cells[dt.Columns["January"].ColumnName].Value.ToString() == "")
                {

                }
                else
                {
                    MessageBox.Show(dataGridView1.Rows[i].Cells["January"].Value.ToString() + "  NOT A DECIMAL!");
                }

            }
            else
            {

            }
        }
    }
};

是否有修复或解决方案,以便我不必手动预设它们?如果 excel 文件具有不同的列名,这意味着再次预设新列会怎样。

汤姆F
CheckBox[] chk = new CheckBox[dt.Columns.Count];
for (int i = 0; i <= dt.Columns.Count - 1; i ++)
{
    chk[i] = new CheckBox();
    chk[i].Name = dt.Columns[i].ColumnName;
    chk[i].Text = dt.Columns[i].ColumnName;
    chk[i].AutoCheck = true;
    chk[i].Bounds = new Rectangle(10, 20 + padding + dynamicHeight, 40, 22);
    panelCol.Controls.Add(chk[i]);
    dynamicHeight += 20;
    panelCol.Size = new Size(120, dynamicHeight);
    panelCol.Controls.Add(chk[i]);
    chk[i].Location = new Point(0, dynamicHeight);
    chk[i].Size = new Size(120, 21);
    panelCol.BackColor = Color.White;
    panelCol.AutoScroll = true;
    //panelCol.AutoScrollMinSize = new Size (0, 1200);

    chk[i].CheckedChanged += (s, ev) =>
    {
        decimal num;
        if (chk[i].Checked == true && chk[i].Name.Contains(dt.Columns[0].ColumnName))
        {
        //MessageBox.Show("HELLOW WORLD " + 0);

          for (int i = 0; i < dataGridView1.RowCount; i++)
            {
              if (!Decimal.TryParse(dataGridView1.Rows[i].Cells[chk[i].Name].Value.ToString(), out num))
                {
                  if (dataGridView1.Rows[i].Cells[dt.Columns[chk[i].Name].ColumnName].Value.ToString() == null || dataGridView1.Rows[i].Cells[dt.Columns[chk[i].Name].ColumnName].Value.ToString() == "")
                    {

                    }
                    else
                    {
                    MessageBox.Show(dataGridView1.Rows[i].Cells[chk[i].Name].Value.ToString() + "  NOT A DECIMAL!");
                    }

                 }
                 else
                 {

                  }
             }
         }
    };

}

这没有经过测试或任何东西,但它是您想要完成的基本概念。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

有没有办法以编程方式读取Java中的.jmod文件?

同时选中DataGridView中的所有复选框

有没有办法在Swift中以编程方式设置NSCollectionView?

有没有办法以编程方式获得Metal中特定功能的限制?

有没有办法以编程方式清除Python 3中跨平台的终端?

有没有办法以编程方式添加Prometheus监视目标和警报

有没有办法从CLI或Groovy中以编程方式从JIRA中提取冲刺编号?

有没有办法在Android Studio中以编程方式对线性布局进行排序?

有没有办法以编程方式将R源代码保存到文件中?

有没有办法在Entity Framework Core中以编程方式检查未决模型更改?

有没有办法在Android中以编程方式在图像上创建渐变?

在DataGridView中带有复选框的SelectRow

有没有办法在Symfony2中以编程方式启用SQL日志记录?

有没有办法在sbt中以编程方式调用“重新加载”?

有没有办法在React Native中以编程方式更改SegmentedControlIOS选定的选项?

C#检查datagridview复选框列中已检查值的有效方法

有没有办法在 JooQ 中以编程方式回滚事务?

有没有办法从 wpf 应用程序中的 DataGridView 控件获取数据?

有没有办法在Android中以编程方式更改子字符串的颜色?

有没有办法在 angular 7 应用程序中以编程方式清除缓存?

有没有办法以编程方式使用 kotlin 更改片段中的文本颜色?

有没有办法以编程方式更改 Flutter TextTheme 中的属性值?

有没有办法以编程方式更改查询中执行的功能?

当 D 列中没有电话号码时,有没有办法删除 E 和 F 列中的复选框

有没有办法以编程方式更改在 Reality Composer 中创建的实体的材料?

有没有办法在java中以编程方式确定JVM CompileThreshold?

有没有办法在 Android Kotlin 中以编程方式在视图之间设置边距?

有没有办法以编程方式在框架布局中创建水平滚动排列?

有没有办法在c#中为datagridview异步读取数据?