限制DataGridView c#中的输入

Posted

技术标签:

【中文标题】限制DataGridView c#中的输入【英文标题】:Restricting the input in DataGridView c# 【发布时间】:2015-05-21 13:08:35 【问题描述】:

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

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

另外,当用户在最后一行添加任何值时,dataGridView 会自动创建一个新行,并将这个新行添加为组合框。

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

【问题讨论】:

【参考方案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);
   

【讨论】:

以上是关于限制DataGridView c#中的输入的主要内容,如果未能解决你的问题,请参考以下文章

如何允许用户在 c# 中的 datagridview 组合框中手动输入

如何根据 c# winforms 中的列日期和名称将 sql 中的数据输入到特定的 datagridview 单元格中

c#如何获取datagridview中的第一列的值,注意不是选中行

c#中list绑定datagridview为啥不显示数据

C# 怎么把数组中的数据添加到datagridview中

C#如何保留datagridview中的原来数据并将新的数据添加到datagridview中?