现在的位置: 首页 > 综合 > 正文

后勤物资管理系统[下载试用]+winform中DataGridView控件自定义列分析

2012年07月20日 ⁄ 综合 ⁄ 共 3087字 ⁄ 字号 评论关闭

           系                              :
   下载
   后勤物资管理系统1.0 ,采用C#+ACCESS+XML完成,功能简单实用.能满足普通企业物资和资金管理.具有数据备份,选择查询并导出excel等附加功能.

用户名:123 密码:456 超级管理员:123 密码:456

登陆后进入系统设置需要重新确认身份,用户名:123 密码456 进行管理员设置

分资金和物资管理,可进行类别设置

技术支持:蓝天旭日 QQ:604812864 : 10437223

                             介:

资金管理:添加记录 修改记录 删除记录 单条件查询 组合查询 统计 类别设置

物资管理:添加记录 修改记录 删除记录 单条件查询 组合查询 统计 类别设置

系统管理 类别设置 类别修改 人员设置 人员修改 查询

数据备份:自动复制数据,用户直接选择路径存储

 

winformDataGridView控件自定义列:

 

CoinGridviewTextboxComboxColumn cmbClass = new CoinGridviewTextboxComboxColumn();  //自定义列

cmbClass.HeaderText = "类别";

cmbClass.Name = "inout";

cmbClass.Width = 40;

cmbClass.DataPropertyName = "inout";

dgdView.Columns.Add(cmbClass);  //将自定义列添加到DataGridView

 

其中CoinGridviewTextboxComboxColumn是继承了 dataGridViewColumn,

其中CoinGridviewTextboxComboxColumn 的构造方法也调用了CoinGridviewTextboxComboxCell的构造方法,CoinGridviewTextboxComboxCell也是自定义类,继承了DataGridViewTextBoxCell就是完成一个自定义的列,重写了两个类CoinGridviewTextboxComboxColumn   CoinGridviewTextboxComboxCell,两个类的原形及应用如下:

 

CoinGridviewTextboxComboxColumn原形如下:

 

class CoinGridviewTextboxComboxColumn:DataGridViewColumn

    {

        public CoinGridviewTextboxComboxColumn(): base(new CoinGridviewTextboxComboxCell())

        {

           

        }

        public override DataGridViewCell CellTemplate

        {

            get

            {

                return base.CellTemplate;

            }

            set

            {

                if (value != null && !value.GetType().IsAssignableFrom(typeof(CoinGridviewTextboxComboxCell)))

                {

                    throw new InvalidCastException("非正常列!");

                }

                base.CellTemplate = value;

            }

        }

}

 

 

CoinGridviewTextboxComboxCell 原形:

class CoinGridviewTextboxComboxCell:DataGridViewTextBoxCell

     {

     

        public CoinGridviewTextboxComboxCell()

        {

 

        }

      public override void InitializeEditingControl(int rowIndex, object initialFormattedValue, DataGridViewCellStyle dataGridViewCellStyle)

      {

        base.InitializeEditingControl(rowIndex, initialFormattedValue,dataGridViewCellStyle);

       

        DataGridViewComboBoxEditingControl ctl =DataGridView.EditingControl as DataGridViewComboBoxEditingControl;  //定义一个DataGridViewComboBoxEditingControl控件

       

        if (this.ColumnIndex == 3)  //判断如果是类型列

        {

            ctl.DataSource = MeterialFunction.ComltClassInit("s", "coin");

        }

 

     // 根据列号来初始化DataGridViewComboBoxEditingControl

       if (this.ColumnIndex == 4)  //判断如果是类别列

        {

            string[] state = { "计划", "已执行" };

 

            ctl.DataSource = state;

        }

       if (this.ColumnIndex == 0)  //

        {

            string[] inout = { "支出", "划入" };

 

            ctl.DataSource = inout;

        }

        try

        {

            ctl.Text = (string)this.Value;

 

        }

        catch

        {

            ctl.Text = " ";

        }

      }

 

 

        public override Type EditType

        {

            get

            {

                return typeof(DataGridViewComboBoxEditingControl);

            }

        }

 

        public override Type ValueType

        {

            get

            {

                return typeof(string);

            }

        }

 

        public override object DefaultNewRowValue

        {

            get

            {

                return "";

            }

        }

     

    }

 

最后情形如下:

 

抱歉!评论已关闭.