zoukankan      html  css  js  c++  java
  • 控件:DataGridView列类型

      DataGridView的列的类型提供有多种,包括有:

    (1)DataGridViewTextBoxColumn(文本列,默认的情况下就是这种) 
    (2)DataGridViewComboBoxColumn(组合框列,名字瞎起的,就是这个功能要用到的列) 
    (3)DataGridViewLinkColumn(链接列) 
    (4)DataGridViewButtonColumn(按钮列) 
    (5)DataGridViewCheckBoxColumn(打钩列) 

    一、DataGridViewComboBoxColumn

      实例:

                    DataTable dt = DBServiceHelper.businessDbHelper.Fill(UserInfo, "select  a.code,a.Name  from  tequip_ini a where a.equip_type in (1,6) ");
                    if (dt != null)
                    {
                        dataGridViewTextBoxColumn3.DataPropertyName = "code";
                        dataGridViewTextBoxColumn3.DisplayMember = "name";
                        dataGridViewTextBoxColumn3.ValueMember = "code";
                        dataGridViewTextBoxColumn3.DataSource = dt;
                    } 

              GrdReadRecord2.EditingControlShowing += new DataGridViewEditingControlShowingEventHandler(GrdReadRecord2_EditingControlShowing);

    
    

      实现每一行的该单元格具有不同的ComboBox项:  

            private void GrdReadRecord2_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
            {
                try
                {
                    if (GrdReadRecord2.CurrentCell.ColumnIndex == 5)
                    {
                        ComboBox cb = e.Control as ComboBox; 
                        if (cb != null)
                        {
                            DataTable dt = DBServiceHelper.businessDbHelper.Fill(UserInfo, " select  cast(0 as varchar(200)) as code ,'' as Name  UNION ALL    select  a.code,a.Name  from  tequip_ini a "+
                                " left join CardPosItem b on a.PosItem=b.id where   a.equip_type in(1,6) and  b.id= " + this.GrdReadRecord2.CurrentRow.Cells["ColPostItemID"].Value.ToString()); 
                            cb.DataSource = dt;
                            if (dt != null && dt.Rows.Count > 0)
                                cb.SelectedIndex = 0;
                        }
                    }
                }
                catch (Exception ex)
                {
                    ListBoxAdd(lHint2, "异常:" + ex.Message.ToString());
                }
            }

      值得注意的是:

        每一行单元格绑定的数据必须要存在列的Item内,即是在EditingControlShowing前要先设置DataPropertyName、DisplayMember、ValueMember、DataSource,EditingControlShowing查出的数据必须是DataSource的子集。不然就会认为是错误值,报错。

      获取选取值:

        获取ValueMember:GrdReadRecord2.Rows[e.RowIndex].Cells[5].Value.ToString();

        获取DisplayMember:GrdReadRecord2.Rows[e.RowIndex].Cells[5].EditedFormattedValue.ToString();

      

  • 相关阅读:
    C- c常见问题分析
    LEETCODE
    MPI之求和
    在VS2010配置MPI--win7下64位系统
    OpenMP之枚举排序
    OpenMP之数值积分(求圆周率Pi)(sections)
    OpenMP之求和(用section分块完成)
    64位WIN7下安装MPICH2
    Ubuntu下eclipse开发hadoop应用程序环境配置
    C语言字符串函数例子程序大全 – string相关
  • 原文地址:https://www.cnblogs.com/qi123/p/8972147.html
Copyright © 2011-2022 走看看