标签: datagridviewcombobox

DataGridViewComboBoxCell绑定 - "值无效"

我正在尝试将DataGridView中的单独ComboBox单元绑定到自定义类,并继续收到错误

DataGridViewComboBoxCell值无效

我现在正在将单元格的数据源分配给IList<ICustomInterface>我所拥有的词典.但是,在设置数据源时,ComboBoxCell未设置索引,因此选择了无效值.

我试图弄清楚如何让它选择一个真正的值,例如列表中的第0个项目,它已被删除此错误,或找到解决问题的另一种方法.有人有什么建议吗?

c# datagridview datagridviewcombobox

28
推荐指数
3
解决办法
8万
查看次数

DataGridView设置列单元格Combobox

我在Datagridview中有这样的表:

 Name   Money
 -------------
 Hi      100   //here Combobox with member {10,30,80,100} to choose
 Ki      30    //here Combobox with member {10,30,80,100} to choose
Run Code Online (Sandbox Code Playgroud)

我想从组合框中更改列"Money"值

我试过这个,但不知道进一步:

DataTable dt = new DataTable();
dt.Columns.Add("Name", typeof(String));
dt.Columns.Add("Money", typeof(String));
dt.Rows.Add(new object[] { "Hi", 100});
dt.Rows.Add(new object[] { "Ki", 30});

DataGridViewComboBoxColumn column = new DataGridViewComboBoxColumn();
var list11 = new List<string>() { "10", "30", "80", "100" };
column.DataSource = list11;
column.ValueMember = "Money";
dataGridView1.Columns.Add(column); 
Run Code Online (Sandbox Code Playgroud)

c# datagridview datagridviewcombobox

15
推荐指数
1
解决办法
8万
查看次数

如何使ComboBox下拉列表调整自身大小以适应最大的项目?

我有一个DataGridViewComboBox它可能包含一些相当大的字符串.有没有办法让下拉列表扩展自己或至少wordwrap字符串,以便用户可以看到整个字符串,而我不必调整ComboBox列宽?

c# combobox datagridview datagridviewcombobox winforms

11
推荐指数
2
解决办法
1万
查看次数

DataGridViewComboBoxColumn名称/值如何?

我认为这很简单,就像在Access中一样.

用户需要将数据表中一列的值设置为1或2.

我想呈现一个组合框,显示"ONE","TWO"并在场景后面设置1或2,就像我在Access-Forms中做过很多次一样.

另一方面,如果显示该表,则它不应显示1或2,而是显示ComboBox中的相应字符串.

我怎样才能让这个简单的任务工作?

.net c# datagridview datagridviewcombobox winforms

8
推荐指数
1
解决办法
2万
查看次数

DataGridViewComboBoxColumn设置selectedindex

嗨我运行时将数据绑定到datagridview组合框.但是如何让它自动显示第一项呢?我无法从DataGridViewComboBoxColumn中找到selectedindex.

  DataGridViewComboBoxColumn cbStudentCourse = (DataGridViewComboBoxColumn)dgStudentCourse.Columns["studentCourseStatus"];
                    cbStudentCourse.DataSource = Enum.GetValues(typeof(CourseStudentStatus));
                    cbStudentCourse.DisplayIndex = 1;
Run Code Online (Sandbox Code Playgroud)

- 更新---
我看到有人在解决方案中做这个3
LInk
你确定我需要这么长的代码来选择第一个项目??????

c# gridview datagridviewcombobox winforms

6
推荐指数
2
解决办法
3万
查看次数

DataGridViewCombobox列中的AutoComplete有什么奇怪的行为?

我正在使用(EditingControlShowing)事件在DataGridViewComboBox列中启用自动完成.

private void dataGridView1_EditingControlShowing(object sender,  DataGridViewEditingControlShowingEventArgs e)
{
    if (e.Control is DataGridViewComboBoxEditingControl)
    {
        ComboBox combo = (ComboBox)e.Control;
        ((ComboBox)e.Control).DropDownStyle = ComboBoxStyle.DropDown;
        ((ComboBox)e.Control).AutoCompleteSource = AutoCompleteSource.ListItems;
        ((ComboBox)e.Control).AutoCompleteMode =  System.Windows.Forms.AutoCompleteMode.SuggestAppend;
    }
}
Run Code Online (Sandbox Code Playgroud)

但它有一个奇怪的行为,当我键入一些字符然后我离开单元格(Tab或右键),值没有改变.
但如果我重复一遍,那么价值就会改变.从这里,您可以下载解释问题的源代码和(EXE)视频.

你能帮助我让它正常工作吗?

c# combobox datagridview datagridviewcombobox datagridviewcomboboxcell

6
推荐指数
1
解决办法
2111
查看次数

以编程方式将单元格和行添加到DataGridView

我正在努力DataGridViewComboBoxCell.在某些情况下(比方说,事件)我必须ComboBox在我的表格中预先选择一个值DataGridView.当用户更改一个框时,我可以以编程方式更改另一个框:

var item = ItemName.Items.GetListItem(name);
if (item != null)
{
    _loading = true; // that's needed to come around another CellValueChanged events
    itemView.Rows[e.RowIndex].Cells["ItemName"].Value = item;
    _loading = false;
}
Run Code Online (Sandbox Code Playgroud)

我这样填充ItemName.Items:

foreach (var item in _model.DefaultData.ItemList)
{
    if (item.Value.Code.HasValue()) ItemCode.Items.Add(new ListItem(item.Key, item.Value.Code));
    ItemName.Items.Add(new ListItem(item.Key, item.Value.Name));
}
Run Code Online (Sandbox Code Playgroud)

GetListItem方法:

public static ListItem GetListItem(this DataGridViewComboBoxCell.ObjectCollection col, string name)
{
    ListItem retItem = null;
    foreach (ListItem item in col)
    {
        if (item.Name == name) { retItem = …
Run Code Online (Sandbox Code Playgroud)

c# datagridview datagridviewcombobox winforms datagridviewcomboboxcell

6
推荐指数
1
解决办法
2万
查看次数

C#Winforms DatagridviewCombobox异常String无法转换为类

我从datagridview中嵌入的datagridviewcombobox(下拉菜单)控件中选择一个新值时遇到异常.组合框由BindingSource填充,其中填充了我的类的实例.我可以正确显示菜单中的选项,然后选择一个,但是将焦点更改为新控件(我猜想提交更改)会导致出现异常:从System.String到myclass的无效转换.堆栈跟踪(如果我正确使用该字)显示源是

System.Windows.Forms.DataGridView.PushFormattedValue级联到System.Convert.DefaultToType

下面有一个更明确的解释(抱歉它很长,但我想让它可重复):

我有一个名为Occupant的空类,没有属性(当Occupant也有一个字符串Name属性时,问题就存在了,所以不是这样).我有一个名为OccupantSource的BindingSource,其DataSource指向Occupant.

我还有一个叫做Car的类,有一个名为Driver的Occupant属性.

在我的Form_Load()中,我两次调用OccupantSource.AddNew(),并调用一次CarSource.AddNew().

我有一个DataGridView控件,其DataSource是CarSource(由Cars组成的BindingSource).DGV有一列,显示CarSource中汽车的Driver属性.它是一个DataGridViewComboBoxColumn,DataPropertyName设置为驱动程序.

所以我想要的是在Datagridview中显示汽车行,其中一列是组合框,我可以下拉并从现有的Occupant实例中选择一个驱动程序.但我得到了例外.

这是我误解的事吗?你能不能使用类的实例来填充DataGridViewComboBox?

c# combobox datagridviewcombobox winforms

5
推荐指数
1
解决办法
2222
查看次数

如何在datagridview组合框列中绑定数据

这是联系人,但我们可以有多个联系人,所以我想在组合框中显示一个列表

DataTable dt = new DataTable();
dt = MainClass.GetDatabyQuery("select * from tbl");

if (dt.Rows.Count > 0)
{
    dgv_ClientDetail.DataSource = dt;
}
Run Code Online (Sandbox Code Playgroud)

我有这个方法从datagridview中的数据库中获取值,但我想要一个datagridview组合框列,并希望将数据绑定在一个dgv组合框和其他dgv texbox中.如果有人知道那么告诉我.这里有三列名称,城市,联系人.我想在dgv组合框列中显示多个联系人

c# windows datagridviewcombobox

5
推荐指数
1
解决办法
3万
查看次数

datagridview组合框列表颜色更改为黑色c#

private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
    {
        int n = dataGridView1.CurrentCell.RowIndex;
        if (dataGridView1.CurrentCell.ColumnIndex == 0)
        {
            var cbCell = dataGridView1.Rows[n].Cells["category"] as DataGridViewComboBoxCell;
            DataTable dt = c1.ret("select category from category").Tables[0];
            cbCell.DataSource = dt;
            cbCell.ValueMember = "category";
            cbCell.DisplayMember = "category";
            cbCell.FlatStyle = FlatStyle.System;
        }
    }
Run Code Online (Sandbox Code Playgroud)

我正在尝试为数据网格组合框设置数据源,但是当我设置数据源时。组合框颜色的下拉列表变成黑色。我尝试了一些设置背景颜色的代码,但每个代码都失败了。现在我被我的项目困住了。请帮我....

c# background-color datagridviewcombobox

5
推荐指数
1
解决办法
1631
查看次数