Подумав об этом дальше, я бы посоветовал вам использовать столбец со списком, а не столбец с текстовым полем. Таким образом, пользователь не сможет ввести недопустимое значение, поскольку ему нужно выбрать «Y» или «N» из выпадающего списка.
A DataGridView
никогда не создаст поле со списком Колонка для вас, хотя, так что вам нужно добавить один самостоятельно. Вы можете сделать это в коде, но я бы посоветовал вам сделать это в конструкторе. В любом случае вам нужно установить для свойства DataPropertyName
столбца сетки имя столбца источника данных (в вашем случае «Активный»), чтобы он правильно связывался. См. Мое руководство по добавлению столбца со списком в конструкторе здесь .
Когда у вас есть столбец со списком, вам необходимо связать выпадающие элементы. В вашем случае вы можете сделать это:
Dim activeOptions = {New With {.Text = "Y", .Value = 1},
New With {.Text = "N", .Value = 0}}
With activeColumn
.DisplayMember = "Text"
.ValueMember = "Value"
.DataSource = activeOptions
End With
Это следует сделать до того, как вы установите DataSource
сетки. Этот код создает массив объектов анонимного типа, где значения Text
- это то, что отображается в раскрывающемся списке, а значения Value
соответствуют значениям ячеек из источника данных сетки.