请教高手:DataGridView的DataGridViewComboBoxColumn的默认值怎么设置??

时间:2020-12-19 09:54:24
就是要设置一下DataGridViewComboBoxColumn的默认值。DataGridView一显示出来,DataGridViewComboBoxColumn就已经显示出某个设定的默认值。不用手动选择一下才能显示。

14 个解决方案

#1


难道没人知道?

#2


难道真的没有人用过DataGridViewComboBoxColumn吗??

#3


哎,看来真是没人知道了。
本以为很简单的一个事情,真没想到大家都不知道。
可能是微软没有提供这个接口呢??

#4


只能一行一行的设置,不能对整列设制模任值

#5


请问如何一行一行的设置??

#6


如果你有绑定到数据源如datatable 设置其对应列的默认值 应该就可以

#7


绑定到datatable,是什么数据结构形成了DataGridViewComboBoxColumn?
我的DataGridViewComboBoxColumn是手动插入的。不知楼上有和高见,可以详细一点儿。

#8


可以设定comboBoxColumn的datasource,displaymember,valuemember和dataPropertyName,其中datapropertyName就是默认值

#9


//虚拟模式下可以处理DataGridView的NewRowNeeded为其赋初始值
        //private void blackSheet DataGridView_ NewRowNeeded(object sender, DataGridViewRowEventArgs e)
        //{
        //    DataRowView currentRow = blackSheetBindingSource.Current as DataRowView;
        //        currentRow["typeID"] = (int)this.typeFilter.Tag;
        //   。。。。。。
        //}
//常规模式下处理BindingSource的AddingNew为其赋初始值
        //private void blackSheet BindingSource_ AddingNew(object sender, AddingNewEventArgs e)
        //{
        //        BindingSource bs = (BindingSource)sender;
        //        DataView view = (DataView)bs.List;
        //        DataRowView row = view.AddNew();
        //        row["typeID"] = (int)this.typeFilter.Tag;
        //        if(bs.Count == 1)
        //        {
        //            bs.EndEdit();
        //        }
        //        bs.MoveLast();
        //        e.NewObject = row;
        //    }
        //}

#10


还是不行,算了,可能这个控件不能实现我要的功能。

#11


            this.dataGridView1.ColumnCount = 2;
            this.dataGridView1.RowCount = 5;

            List<ComItem> comItems = new List<ComItem>();
            comItems.Add(new ComItem("text1","value1"));
            comItems.Add(new ComItem("text2", "value2"));
            comItems.Add(new ComItem("text3", "value3"));

            DataGridViewComboBoxCell combo  = new DataGridViewComboBoxCell();
            combo.DataSource = comItems;
            combo.DisplayMember = "Text";
            combo.ValueMember = "Value";
            combo.Value = "value2";    // 这里可以算是默认值。

            this.dataGridView1.Rows[1].Cells[1] = combo;

#12


贡献一下:
dataGV.DataSource =ds.Table[0];//数据源
//关键代码,其中Columns[2]为你的DataGridViewComboBoxColumn所在列
((DataGridViewComboBoxColumn)datagridview1.Columns[2]).DefaultCellStyle.NullValue = "--请选择--";

#13


不好意思,打错字

将dataGV.DataSource =ds.Table[0];//数据源
改为
datagridview1.DataSource =ds.Table[0];//数据源

#14


11楼正解~

#1


难道没人知道?

#2


难道真的没有人用过DataGridViewComboBoxColumn吗??

#3


哎,看来真是没人知道了。
本以为很简单的一个事情,真没想到大家都不知道。
可能是微软没有提供这个接口呢??

#4


只能一行一行的设置,不能对整列设制模任值

#5


请问如何一行一行的设置??

#6


如果你有绑定到数据源如datatable 设置其对应列的默认值 应该就可以

#7


绑定到datatable,是什么数据结构形成了DataGridViewComboBoxColumn?
我的DataGridViewComboBoxColumn是手动插入的。不知楼上有和高见,可以详细一点儿。

#8


可以设定comboBoxColumn的datasource,displaymember,valuemember和dataPropertyName,其中datapropertyName就是默认值

#9


//虚拟模式下可以处理DataGridView的NewRowNeeded为其赋初始值
        //private void blackSheet DataGridView_ NewRowNeeded(object sender, DataGridViewRowEventArgs e)
        //{
        //    DataRowView currentRow = blackSheetBindingSource.Current as DataRowView;
        //        currentRow["typeID"] = (int)this.typeFilter.Tag;
        //   。。。。。。
        //}
//常规模式下处理BindingSource的AddingNew为其赋初始值
        //private void blackSheet BindingSource_ AddingNew(object sender, AddingNewEventArgs e)
        //{
        //        BindingSource bs = (BindingSource)sender;
        //        DataView view = (DataView)bs.List;
        //        DataRowView row = view.AddNew();
        //        row["typeID"] = (int)this.typeFilter.Tag;
        //        if(bs.Count == 1)
        //        {
        //            bs.EndEdit();
        //        }
        //        bs.MoveLast();
        //        e.NewObject = row;
        //    }
        //}

#10


还是不行,算了,可能这个控件不能实现我要的功能。

#11


            this.dataGridView1.ColumnCount = 2;
            this.dataGridView1.RowCount = 5;

            List<ComItem> comItems = new List<ComItem>();
            comItems.Add(new ComItem("text1","value1"));
            comItems.Add(new ComItem("text2", "value2"));
            comItems.Add(new ComItem("text3", "value3"));

            DataGridViewComboBoxCell combo  = new DataGridViewComboBoxCell();
            combo.DataSource = comItems;
            combo.DisplayMember = "Text";
            combo.ValueMember = "Value";
            combo.Value = "value2";    // 这里可以算是默认值。

            this.dataGridView1.Rows[1].Cells[1] = combo;

#12


贡献一下:
dataGV.DataSource =ds.Table[0];//数据源
//关键代码,其中Columns[2]为你的DataGridViewComboBoxColumn所在列
((DataGridViewComboBoxColumn)datagridview1.Columns[2]).DefaultCellStyle.NullValue = "--请选择--";

#13


不好意思,打错字

将dataGV.DataSource =ds.Table[0];//数据源
改为
datagridview1.DataSource =ds.Table[0];//数据源

#14


11楼正解~