具有自动填充功能的DataGridView TextBox列,用于填充其他单元格

时间:2015-09-29 20:19:50

标签: c# winforms datagridview autocomplete .net-4.0

我有一个简单的DataGridView:

DataGridView

我有一个班级:

public class TemplateItem
{
    public string Name { get; set; }
    public decimal Price { get; set; }
}

以及存储模板的列表:

List<TemplateItem> templates = new List<TemplateItem>();
// Some code to populate the list

对于&#34;姓名&#34;网格中的单元格,我想:

  • 在用户键入单元格时显示templates列表中的自动填充选项
  • 自动设置&#34; Price&#34;单元格到用户选择的自动填充选项的价格(用户之后可以更改价格)
  • 允许用户输入templates列表
  • 中不可用的内容

我知道如何使用EditingControlShowing事件启用自动填充,例如在this question中。

我不知道如何检测自动填充选项的选择。 Using KeyDown event对我不起作用 - 它永远不会发生。

而且我不知道如何获得所选期权的价格。假设我能够选择&#34;选项&#34;事件,我可以浏览模板并找到一个具有相同名称的模板......但这对我来说似乎是丑陋的代码。我应该能够以某种方式传递关于每个选项的价格的信息,对吗?

1 个答案:

答案 0 :(得分:0)

我最终重新修改了我的用户界面,因此网格不再允许用户输入新行。相反,我有一个单独的ComboBoxDropDownStyle设置为DropDown),其中启用了自动提示,并且添加了&#34;添加&#34;按钮,根据组合框中的值插入新行。如果选择了现有模板,也会插入其价格;否则,只插入输入的文本。

如果有人知道如何在datagridview中实现相同的功能,请告诉我。