如有大侠给指点,百分送上,另有“谢谢”二字送上,最好给个例子

解决方案 »

  1.   

    参考
    http://www.cnblogs.com/slcfhr/articles/455088.html
    http://www.cnblogs.com/perfect/articles/1216591.html
      

  2.   

    http://www.rustemsoft.com/DataGridViewColumns.asp
      

  3.   


            /// <summary>
            /// 读取并绑定权限关系数据显示
            /// </summary>
            private void BindDataToRightsRelationList()
            {
                try
                {
                    // 创建工厂类实例
                    BLLFactory.BLLFactory bllFactory = new BLLFactory.BLLFactory();
                    // 创建权限关系管理类实例
                    IBLL.IRightsRelationManager rightsRelationManager = bllFactory.BuildRightsRelationManager();
                    // 调用实例方法
                    _rightsRelationList = rightsRelationManager.GetAllRightsRelation();
                    // 创建操作管理类实例
                    IBLL.IOperatorManager operatorManager = bllFactory.BuildOperatorManager();
                    // 调用实例方法
                    _operatorCollection = operatorManager.GetAllOperatorInfo();                // 清除原有的列
                    dgvRightsRelationList.Columns.Clear();                // 手动创建数据列
                    //
                    // dgvColId
                    // 
                    DataGridViewTextBoxColumn dgvColId = new DataGridViewTextBoxColumn();
                    dgvColId.Name = "dgvColId";
                    dgvColId.HeaderText = "关系编号";
                    dgvColId.ToolTipText = "[只读列]";
                    dgvColId.DisplayIndex = 0;
                    dgvColId.ReadOnly = true;
                    dgvColId.DataPropertyName = "Id";
                    dgvColId.AutoSizeMode = DataGridViewAutoSizeColumnMode.ColumnHeader;
                    //
                    // dgvColOperatorId
                    // 
                    DataGridViewTextBoxColumn dgvColOperatorId = new DataGridViewTextBoxColumn();
                    dgvColOperatorId.Name = "dgvColOperatorId";
                    dgvColOperatorId.HeaderText = "用户编号";
                    dgvColOperatorId.ToolTipText = "[只读列]";
                    dgvColOperatorId.DisplayIndex = 1;
                    dgvColOperatorId.ReadOnly = true;
                    dgvColOperatorId.DataPropertyName = "OperatorId";
                    dgvColOperatorId.Visible = false;
                    dgvColOperatorId.AutoSizeMode = DataGridViewAutoSizeColumnMode.ColumnHeader;
                    //
                    // dgvColOperatorName
                    // 
                    DataGridViewComboBoxColumn dgvColOperatorName = new DataGridViewComboBoxColumn();
                    dgvColOperatorName.Name = "dgvColOperatorName";
                    dgvColOperatorName.HeaderText = "用户名称";
                    dgvColOperatorName.DisplayIndex = 2;
                    dgvColOperatorName.DataPropertyName = "OperatorName";
                    BindingSource operatorNameSource = new BindingSource();
                    operatorNameSource.DataSource = _operatorCollection.Values;
                    dgvColOperatorName.DataSource = operatorNameSource;
                    dgvColOperatorName.DisplayMember = "ModelName";
                    dgvColOperatorName.ValueMember = "ModelName";
                    //
                    // dgvColRightsGroupId
                    // 
                    DataGridViewTextBoxColumn dgvColRightsGroupId = new DataGridViewTextBoxColumn();
                    dgvColRightsGroupId.Name = "dgvColRightsGroupId";
                    dgvColRightsGroupId.HeaderText = "分组编号";
                    dgvColRightsGroupId.ToolTipText = "[只读列]";
                    dgvColRightsGroupId.DisplayIndex = 3;
                    dgvColRightsGroupId.ReadOnly = true;
                    dgvColRightsGroupId.DataPropertyName = "RightsGroupId";
                    dgvColRightsGroupId.Visible = false;
                    dgvColRightsGroupId.AutoSizeMode = DataGridViewAutoSizeColumnMode.ColumnHeader;
                    //
                    // dgvColRightsGroupName
                    // 
                    DataGridViewComboBoxColumn dgvColRightsGroupName = new DataGridViewComboBoxColumn();
                    dgvColRightsGroupName.Name = "dgvColRightsGroupName";
                    dgvColRightsGroupName.HeaderText = "分组名称";
                    dgvColRightsGroupName.DisplayIndex = 4;
                    dgvColRightsGroupName.DataPropertyName = "RightsGroupName";
                    BindingSource rightsGroupSource = new BindingSource();
                    rightsGroupSource.DataSource = _rightsGroupCollection.Values;
                    dgvColRightsGroupName.DataSource = rightsGroupSource;
                    dgvColRightsGroupName.DisplayMember = "ModelName";
                    dgvColRightsGroupName.ValueMember = "ModelName";                // 添加新建的列
                    dgvRightsRelationList.Columns.AddRange(new DataGridViewColumn[] {
                    dgvColId,
                    dgvColOperatorId,
                    dgvColOperatorName,
                    dgvColRightsGroupId,
                    dgvColRightsGroupName});                //// 手动添加数据行(根据权限关系集合数量)
                    //dgvRightsRelationList.Rows.Add(_rightsRelationList.Count);
                    //// 手动为数据行赋值
                    //foreach (Model.RightsRelation tmpRightsRelation in _rightsRelationList)
                    //{
                    //    dgvRightsRelationList.Rows[tmpRightsRelation.Id - 1].Cells["dgvColId"].Value = tmpRightsRelation.Id;
                    //    dgvRightsRelationList.Rows[tmpRightsRelation.Id - 1].Cells["dgvColOperatorId"].Value = tmpRightsRelation.OperatorId;
                    //    dgvRightsRelationList.Rows[tmpRightsRelation.Id - 1].Cells["dgvColOperatorName"].Value = tmpRightsRelation.OperatorId;
                    //    dgvRightsRelationList.Rows[tmpRightsRelation.Id - 1].Cells["dgvColRightsGroupId"].Value = tmpRightsRelation.RightsGroupId;
                    //    dgvRightsRelationList.Rows[tmpRightsRelation.Id - 1].Cells["dgvColRightsGroupName"].Value = tmpRightsRelation.RightsGroupId;
                    //}                // 使用绑定显示数据行
                    BindingSource source = new BindingSource();
                    source.DataSource = _rightsRelationList;
                    dgvRightsRelationList.AutoGenerateColumns = false;
                    dgvRightsRelationList.DataSource = source;                // 设置工具提示
                    foreach (DataGridViewRow dgvRow in dgvRightsRelationList.Rows)
                    {
                        foreach (DataGridViewCell dgvCell in dgvRow.Cells)
                        {
                            if (dgvCell.ReadOnly)
                                dgvCell.ToolTipText = "[只读格]";
                            else
                                dgvCell.ToolTipText = "[可写格]";
                        }
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(
                        ex.Message,
                        "加载失败",
                        MessageBoxButtons.OK,
                        MessageBoxIcon.Error);
                }
            }
      

  4.   

    DataGridViewRow newrow = dgvSelected.Rows[index];
    DataGridViewComboBoxCell dgb = (DataGridViewComboBoxCell)newrow.Cells[列数];
    然后给dgb赋值