简体   繁体   中英

Restricting the input in DataGridView c#

So I have a DataGridView in a form, and I want to restrict adding data to its cell.

I'm trying to make the cells of any added row a combobox, so that the user will have to choose the data for the cell from the combobox.

Also when a user adds any value to the last row, the dataGridView will automatically create a new row, and this new row will be added as combo boxes.

This pic shows my table, I know the expected values for each column, thats why I want to restrict it with comboboxes in each cell.

第一张照片

When you create the columns, create them each as a DataGridViewComboBoxColumn . As you stated:

[You] know the expected values for each column

Therefore you can create the columns this way with each column's source bound. For example:

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);
  } 
}

从列中选择(“ Foo”)从列中选择(“栏”)从列中选择(“ Baz”)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM