C1ComponentOne 的C1TrueDbGrid示例

使用C1TrueDbGrid部分功能


这是普通界面,最上面的一个是过滤条 filterBar,设备类型点需后就是一个下拉菜单,实现很简单

看下面filterbar的功能

验证用户输入



下面是实现代码

//下拉菜单的实现代码,,还需要在C1TrueDbGrid列设计器里将"设备类型"的Translate属性设置为true,它是一个子属性

  C1.Win.C1TrueDBGrid.ValueItemCollection v = this.grid.Columns["设备类型"].ValueItems.Values;

            v.Clear();

            foreach (MCUDS.MCD_ZFTYPERow row in mcuds1.MCD_ZFTYPE)
            {

                v.Add(new C1.Win.C1TrueDBGrid.ValueItem(row.类型代码.ToString(),row.仪器类型));


            }

//用户编辑数据前触发的事件

  private void grid_BeforeColEdit(object sender, C1.Win.C1TrueDBGrid.BeforeColEditEventArgs e)
        {
            if (e.Column.Name == "设备类型")
            {
                grid.Splits[0].DisplayColumns[e.ColIndex].DataColumn.ValueItems.Presentation = C1.Win.C1TrueDBGrid.PresentationEnum.ComboBox;

            }
         
        }

//编辑后触发的事件

  private void grid_AfterColEdit(object sender, C1.Win.C1TrueDBGrid.ColEventArgs e)
        {
            grid.Splits[0].DisplayColumns["设备类型"].DataColumn.ValueItems.Presentation = C1.Win.C1TrueDBGrid.PresentationEnum.Normal;

       
        }

//编辑完后更新数据前触发的事件


        private void grid_BeforeColUpdate(object sender, C1.Win.C1TrueDBGrid.BeforeColUpdateEventArgs e)
        {
            if (e.Column.Name == "温度计算" || (e.Column.Name == "成果计算"))
            {

                DataRowView dv = (DataRowView)grid[grid.Row];
                string tstring = dv["温度计算"].ToString();
                string vstring = dv["成果计算"].ToString();
                string currentsb = dv["csbmc"].ToString();

                if (e.Column.Name == "温度计算")
                {
                    tstring = grid.Columns[e.ColIndex].Value.ToString();
                }
                else
                {
                    vstring = grid.Columns[e.ColIndex].Value.ToString();
                }
                bool cancel = isValidCString(new string[] { tstring, vstring }, currentsb);

                e.Cancel = !cancel; //e.Cancel=true的话,更新不成功,光标重新锁定的编辑的单元格,              
               

            }
        }

 

//删除行前的提示

private void grid_BeforeDelete(object sender, C1.Win.C1TrueDBGrid.CancelEventArgs e)
        {
            if (MessageBox.Show(string.Format("确定要删除设备{0}及其所有数据吗?", grid[grid.Row, "设备名称"]), "?", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2)
                   == DialogResult.OK)
            {
                e.Cancel = false;
            }
            else
            {
                e.Cancel = true;
            }
        }

//删除一行的代码

 if (grid.SelectedRows.Count > 0)
            {
                int rowIndex= grid.SelectedRows[0];
                grid.Bookmark=rowIndex;

                if (MessageBox.Show(string.Format("确定要删除设备{0}及其所有数据吗?", grid[rowIndex, "设备名称"]), "?", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2)
                    == DialogResult.OK)
                {
                    grid.Delete();
                }

                grid.SelectedRows.Clear();

            }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值