none
关于win应用中DataGridView控件,如何判断对象是否被创建了? RRS feed

  • 问题

  • 问题很多,都是围绕着这个控件的。

     

    1.主要的问题是,我想检验控件中某个单元格是否为空,想用 if(dataGridView1[0][0] == null)这样的语句测试,可是好像如果不填东西,单元格中这个对象是不存在的,不填就会报错。请问如何修改?

    2.我做的一个数据录入和查询工具,进入数据库的有“产品名称”“型号”“单位”“数量”“单价”“金额”,其中“型号”“单位”是可以不填写的。问题来了,数据进数据库时,如何判断这项数据是为空的?问题还是回到了问题1上。

    3.关于DataGridView控件。我看了看这个控件的单元格的属性(dataGridView1[0][0].xxx),发现没有能让一个单元格变色的属性。能否在用户输入之后立刻变色呢?

     

    2011年8月31日 16:51

答案

  • 1.首先判断一下dataGridView1.DataSource是不是DataTable,然后判断是否有数据。没数据的就不要继续执行了。有效性判断是函数第一步需要做的。

    2.DBNull

    3.

    DataGridViewCellStyle   MyStyle   =   new   DataGridViewCellStyle(); 
    MyStyle.BackColor   =   Color.CadetBlue; 
    DataGridView1.Rows(0).Cells(0).Style   =   MyStyle;


    2011 c# mvp China. *George读起来像不像“饺子”?我爱吃饺子,我叫George。
    • 已标记为答案 Knightby 2011年9月5日 4:32
    2011年9月2日 3:42
    版主
  • Hi Knightby, 欢迎来到MSDN 论坛!

    问题1&2:

     将
          if(dataGridView1[0][0]==null)

     改为
         if ((dataGridView[0][0]).value==null)

    问题3:

    private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
    {
        if (e.Value != null)
       {
           // 修改背景颜色.
            e.CellStyle.BackColor = Color.Pink;
        }
    }

    请参看下面的链接以了解更多关于DataGridView.CellFormmatting的信息:

    a. DataGridView.CellFormatting 事件
    http://msdn.microsoft.com/zh-cn/library/system.windows.forms.datagridview.cellformatting.aspx

    b. 如何:自定义 Windows 窗体 DataGridView 控件中的数据格式设置
    http://msdn.microsoft.com/zh-cn/library/z1cc356h.aspx

    希望可以帮助到您!

    祝您今天有个好心情!


    Yoyo Jiang[MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.



    2011年9月2日 6:26
    版主

全部回复

  • 1.首先判断一下dataGridView1.DataSource是不是DataTable,然后判断是否有数据。没数据的就不要继续执行了。有效性判断是函数第一步需要做的。

    2.DBNull

    3.

    DataGridViewCellStyle   MyStyle   =   new   DataGridViewCellStyle(); 
    MyStyle.BackColor   =   Color.CadetBlue; 
    DataGridView1.Rows(0).Cells(0).Style   =   MyStyle;


    2011 c# mvp China. *George读起来像不像“饺子”?我爱吃饺子,我叫George。
    • 已标记为答案 Knightby 2011年9月5日 4:32
    2011年9月2日 3:42
    版主
  • Hi Knightby, 欢迎来到MSDN 论坛!

    问题1&2:

     将
          if(dataGridView1[0][0]==null)

     改为
         if ((dataGridView[0][0]).value==null)

    问题3:

    private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
    {
        if (e.Value != null)
       {
           // 修改背景颜色.
            e.CellStyle.BackColor = Color.Pink;
        }
    }

    请参看下面的链接以了解更多关于DataGridView.CellFormmatting的信息:

    a. DataGridView.CellFormatting 事件
    http://msdn.microsoft.com/zh-cn/library/system.windows.forms.datagridview.cellformatting.aspx

    b. 如何:自定义 Windows 窗体 DataGridView 控件中的数据格式设置
    http://msdn.microsoft.com/zh-cn/library/z1cc356h.aspx

    希望可以帮助到您!

    祝您今天有个好心情!


    Yoyo Jiang[MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.



    2011年9月2日 6:26
    版主
  • 谢谢两位版主大大
    2011年9月5日 4:32