我有DataGridView两个专栏.第一列是TextBoxCol(DataGridViewTextBoxColumn)第二列,第二列是ComboBoxCol(DataGridViewComboBoxColumn).
我怎样才能改变的值TextBoxCol时ComboBoxCol改变其选定的指标值?(这应该在选择的索引更改时发生ComboBoxCol.不是在离开列之后,如dataGridView_CellValueChanged)
我已经阅读了一个与我遇到的问题几乎相同的主题,但我不明白答案(根据复选标记应该是正确的).这是链接. - 几乎相同的主题
我怎样才能避免双击一个DropDownButton用过的DataGridView?现在,我可以DataGridView通过单击两次或更多次来查看其中的下拉项.第一次选择单元格,第二次单击DropDownButton箭头时,它显示列表.如何通过一次点击实现同样的目标?
我有DataGridView一个DataGridViewComboBoxColumn,我已经填充了ComboBox,但在明确DataGridView我必须为该ComboBox设置一个默认值所以请帮助我.
我有这个表单,让用户从一个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) 我正在使用(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
我正在努力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
我想要一个有两列的DataGridView.第一列将始终为DataGridViewComboBoxColumn类型.根据该列中的选择,我希望能够将第二列中的相应单元格更改为DataGridViewComboBoxCell或DataGridViewTextBoxCell.
我想我只需要创建DataGridViewColumn类型的第二列,但不了解如何动态更改单元格类型的机制.
我在Visual Studio 2005中使用VB.NET.
提前致谢!
更新: 我认为,绕过它的一种方法是将第二列作为DataGridViewComboBoxColumn,并更改单元格的属性,使其行为类似于下拉列表,或者作为(可编辑)下拉列表,而不是元素.后者看起来就像一个我可以忍受它的文本框,它不会涉及改变单元格的类型.
vb.net datagridview visual-studio-2005 datagridviewcomboboxcell datagridviewtextboxcell
在我将"EditOnEnter"设置为true后,DataGridViewComboBoxCell如果我没有单击组合框的向下箭头部分,仍然需要两次单击才能打开.
任何人都有任何线索如何解决这个问题?我有自己的DataGridView课程,所以我可以通过一些智能事件处理程序轻松解决系统问题.
谢谢.
我一天中的大部分时间都在为此工作,而解决方案仍然让我望而却步。我的 Winform 应用程序包含DataGridView其中两列是ComboBox下拉列表。奇怪的是,DataGridView似乎填充正确,但在填充时或每当有鼠标悬停或似乎任何其他与DataGridVeiw. 具体来说,我得到两个重复的错误的System.ArgumentException和System.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
我在表单的事件处理程序中添加了一个DataGridViewComboBoxColumna DataGridView,Load并DataGridViewComboBoxCell在列中设置了每个的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)