标签: datagridviewcomboboxcell

在DataGridViewComboBoxColumn SelectedIndexChanged期间触发的事件

我有DataGridView两个专栏.第一列是TextBoxCol(DataGridViewTextBoxColumn)第二列,第二列是ComboBoxCol(DataGridViewComboBoxColumn).

我怎样才能改变的值TextBoxColComboBoxCol改变其选定的指标值?(这应该在选择的索引更改时发生ComboBoxCol.不是在离开列之后,如dataGridView_CellValueChanged)

我已经阅读了一个与我遇到的问题几乎相同的主题,但我不明白答案(根据复选标记应该是正确的).这是链接. - 几乎相同的主题

.net c# datagridview winforms datagridviewcomboboxcell

22
推荐指数
2
解决办法
5万
查看次数

单击即可打开下拉列表(在数据网格视图中)

我怎样才能避免双击一个DropDownButton用过的DataGridView?现在,我可以DataGridView通过单击两次或更多次来查看其中的下拉项.第一次选择单元格,第二次单击DropDownButton箭头时,它显示列表.如何通过一次点击实现同样的目标?

c# datagridview winforms datagridviewcomboboxcell

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

如何在winform中显示DataGridViewComboBoxCell值的设置默认值?

我有DataGridView一个DataGridViewComboBoxColumn,我已经填充了ComboBox,但在明确DataGridView我必须为该ComboBox设置一个默认值所以请帮助我.

c# datagridview datagridviewcomboboxcell

9
推荐指数
2
解决办法
9344
查看次数

DataGridViewComboBoxCell:添加行时如何设置选定的值?

我有这个表单,让用户从一个comboxbox中选择一个(代码 - 产品)项目.输入数量和价格并将其添加到列表中.

在此输入图像描述

将清单加载到表单中

private List<Inventory> inventories = new Inventory().read_inventory();
Run Code Online (Sandbox Code Playgroud)

使用值设置ComboBox

private void set_drop_down_inventory()
{
        cb_inventory.DisplayMember = "name";
        cb_inventory.DataSource = inventories;
        cb_inventory.ResetText();
        cb_inventory.SelectedIndex = -1;
}
Run Code Online (Sandbox Code Playgroud)

当用户选择产品时,它将创建一个新实例.

private void cb_inventory_SelectionChangeCommitted(object sender, EventArgs e)
{
        var selected_inventory = (cb_inventory.SelectedItem as Inventory);

        sales_order_detail = new Sales_Order_Detail(selected_inventory, 0);

        tx_description.Text = selected_inventory.description;
        tx_price.Text = selected_inventory.get_price_str();

 }
Run Code Online (Sandbox Code Playgroud)

用户添加项目后,它会触发此代码.

private void btn_add_item_Click(object sender, EventArgs e)
{

        // Set the inputted data into the instance before adding to the list
        sales_order_detail.description = tx_description.Text.ToString();
        sales_order_detail.quantity = tx_quantity.Value;
        sales_order_detail.price …
Run Code Online (Sandbox Code Playgroud)

c# combobox winforms datagridviewcomboboxcell

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

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万
查看次数

如何在DataGridViewTextBoxCell和DataGridViewComboBoxCell之间切换?

我想要一个有两列的DataGridView.第一列将始终为DataGridViewComboBoxColumn类型.根据该列中的选择,我希望能够将第二列中的相应单元格更改为DataGridViewComboBoxCell或DataGridViewTextBoxCell.

我想我只需要创建DataGridViewColumn类型的第二列,但不了解如何动态更改单元格类型的机制.

我在Visual Studio 2005中使用VB.NET.

提前致谢!

更新: 我认为,绕过它的一种方法是将第二列作为DataGridViewComboBoxColumn,并更改单元格的属性,使其行为类似于下拉列表,或者作为(可编辑)下拉列表,而不是元素.后者看起来就像一个我可以忍受它的文本框,它不会涉及改变单元格的类型.

vb.net datagridview visual-studio-2005 datagridviewcomboboxcell datagridviewtextboxcell

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

如何让DataGridView组合框一键显示下拉列表?

在我将"EditOnEnter"设置为true后,DataGridViewComboBoxCell如果我没有单击组合框的向下箭头部分,仍然需要两次单击才能打开.

任何人都有任何线索如何解决这个问题?我有自己的DataGridView课程,所以我可以通过一些智能事件处理程序轻松解决系统问题.

谢谢.

.net c# datagridview winforms datagridviewcomboboxcell

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

C# 运行时错误:“DataGridViewComboBoxCell 值无效”

我一天中的大部分时间都在为此工作,而解决方案仍然让我望而却步。我的 Winform 应用程序包含DataGridView其中两列是ComboBox下拉列表。奇怪的是,DataGridView似乎填充正确,但在填充时或每当有鼠标悬停或似乎任何其他与DataGridVeiw. 具体来说,我得到两个重复的错误的System.ArgumentExceptionSystem.FormatException。这两个错误的消息文本是:

“DataGridViewComboBoxCell 值无效。要替换此默认对话框,请处理 DataError 事件。”

我不想仅仅通过处理DataError事件来掩盖这个问题。 我想解决导致错误的问题。 这就是我填充列表的方式:

class ManageProcsRecord
{
    public SectionType PageSection { get; set; }
    public Int32 ContentID { get; set; }
    public String Content { get; set; }
    public Int32 SummaryID { get; set; }
    public RoleType UserRole { get; set; }
    public String Author { get; set; }
    public String SysTime { get; set; }
}

public enum …
Run Code Online (Sandbox Code Playgroud)

c# datagridview datagridviewcombobox winforms datagridviewcomboboxcell

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

一旦显示表单,DataGridViewComboBoxCell.DataSource将设置为null

我在表单的事件处理程序中添加了一个DataGridViewComboBoxColumna DataGridView,LoadDataGridViewComboBoxCell在列中设置了每个的DataSource .但是,一旦显示表单,每个的DataSource DataGridViewComboBoxCell都已设置为null.这是我用来填充列及其单元格的代码:

DataGridViewComboBoxColumn comboCol;

comboCol = new DataGridViewComboBoxColumn();
comboCol.Name = "ComboCol";
comboCol.HeaderText = "Combo Column";
comboCol.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;

this.dgv.Columns.Add(comboCol);

for (int i = 0; i < dgv.Rows.Count; i++)
{
    // This datatable is actually populated here!
    DataTable myData = PopulatedDataTable(dgv.Rows[i].Cells["info"].Value); 

    DataGridViewComboBoxCell DCC = new DataGridViewComboBoxCell();

    DCC = (DataGridViewComboBoxCell)dgv.Rows[i].Cells["CombolCol"];
    DCC.DataSource = myData;

    DCC.DisplayMember = "Association"; // Association is a column in myData
    DCC.ValueMember = "Association";
}

dgv.Columns["association"].Visible = false; …
Run Code Online (Sandbox Code Playgroud)

c# datagridview winforms datagridviewcomboboxcell

4
推荐指数
1
解决办法
4448
查看次数