dataGridViewCombobox中有两个值All Fields和Some Fields,
当选择Some Fields时,创建一个按钮并显示出来,选择All Fields时,把创建的按钮隐藏起来,或者注销掉刚创建的按钮
这样怎么实现?winform中的dataGridView中(dataGridViewCombobox)

解决方案 »

  1.   

    用事件控制
    参考:如何给DataGridViewComboBoxColumn写事件private void hpGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
            {
                //判断要处理的DataGridViewComboBoxColumn名称,若符合条件,编辑控件被强制转换为ComboBox以处理,添加SelectedIndexChanged事件
                if (this.hpGridView1.CurrentCell.OwningColumn.Name == "clmTest")
                {
                    ((ComboBox)e.Control).SelectedIndexChanged += new EventHandler(ComboBox_SelectedIndexChanged);
                }        }        /// <summary>
            /// SelectedIndexChanged事件触发时需要进行的处理
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void ComboBox_SelectedIndexChanged(object sender, EventArgs e)
            {
                this.hpGridView1.CurrentRow.Cells["name"].Value = ((ComboBox)sender).Text;
            }
      

  2.   

    谢谢!可以改变dataGridViewCombobox的宽度,而不改变这列的宽度吗?
      

  3.   

    还有点问题。我在这个ComboBox_SelectedIndexChanged事件中创建的按钮控件不能马上显示出来,要单击下其他单元格才能显示出来,怎样能马上显示出来?
    还有怎样能在另一条件中隐藏控件,代码如下:
    if (((ComboBox)sender).Text == "Some Fields")
                        {
                            Button btnName = new Button();
                            btnName.Text = "...";
                            btnName.Width = 31;
                            btnName.Height = 18;
                            btnName.Left = this.dgvChangeLogTableMain.GetCellDisplayRectangle(0, 0, true).Left + 65;
                            btnName.Top = this.dgvChangeLogTableMain.GetCellDisplayRectangle(0, 0, true).Top + 1;
                            this.dgvChangeLogTableMain.Controls.Add(btnName);
                            btnName.Visible = true;
                            ((ComboBox)sender).Width = 80;
                        }
                        else
                        {
                            
                        }
    else中怎样隐藏?
    谢谢啦