限制DataGridView中的输入c#

时间:2015-05-21 13:08:36

标签: c# datagridview combobox

所以我在表单中有一个DataGridView,我想限制向其单元格添加数据。

我正在尝试使任何添加行的单元格成为组合框,因此用户必须从组合框中选择单元格的数据。

此外,当用户向最后一行添加任何值时,dataGridView将自动创建一个新行,并且此新行将作为组合框添加。

这张照片显示了我的表格,我知道每列的预期值,这就是为什么我想用每个单元格中的组合框来限制它。

first pic

1 个答案:

答案 0 :(得分:1)

创建列时,请将它们分别创建为DataGridViewComboBoxColumn。如你所说:

  

[你]知道每列的预期值

因此,您可以使用每个列的源绑定以这种方式创建列。例如:

public Form1()
{
  InitializeComponent();

  List<List<string>> options = new List<List<string>>()
  {
    new List<string>() { "Foo 1", "Foo 2", "Foo 3" },
    new List<string>() { "Bar 1", "Bar 2", "Bar 3" },
    new List<string>() { "Baz 1", "Baz 2", "Baz 3" }
  };

  List<string> names = new List<string>() { "Foo", "Bar", "Baz" };

  for (int i = 0; i < names.Count; i++)
  {
    DataGridViewComboBoxColumn col = new DataGridViewComboBoxColumn();
    col.Name = names[i];
    col.DataSource = options[i];
    this.dataGridView1.Columns.Add(col);
  } 
}

Choosing from column("Foo") Choosing from column("Bar") Choosing from column("Baz")