Vb.net datagridview последний столбец установлен только для чтения - PullRequest
0 голосов
/ 26 сентября 2018

Я знаю, что вы можете установить столбец таблицы данных для чтения только в том случае, если вы вручную добавляете столбцы, но возможно ли заполнить таблицу данных с помощью mysql dB и настроить некоторые столбцы на чтение только для чтения ... При этом пользователь можетредактировать все остальные столбцы, полученные из дБ mysql, кроме столбцов, настроенных только для чтения

Спасибо за вашу помощь

1 Ответ

0 голосов
/ 26 сентября 2018

Неважно, откуда берутся данные, которые вы используете для заполнения DataGridView (зачем это нужно?).

Используйте свойство ReadOnly DataGridViewColumn, чтобы установить его только для чтения:

yourDataGridView.Columns("the_column_name").ReadOnly = True

Примечание. Если вы используете привязку данных (то есть свойство DataSource), вам придется подождать, пока не сработает DataBindingComplete, прежде чем вы сможете изменить столбцы.

Вот короткий, бегущий пример:

Dim con = new SqlConnection("Server=localhost;Database=master;User Id=sa;Password=whatever;")
Dim sqlCmd = new SqlCommand()
With sqlCmd
    .Connection = con
    .CommandType = CommandType.Text
    .CommandText = "Select * from spt_monitor"
End With
Dim sqlDataAdap = new SqlDataAdapter(sqlCmd)

Dim dtRecord = new DataTable()
sqlDataAdap.Fill(dtRecord)

Dim dgv = new System.Windows.Forms.DataGridView()
With dgv
    .DataSource = dtRecord
    .Dock = System.Windows.Forms.DockStyle.Fill
End With

AddHandler dgv.DataBindingComplete, Sub(sender, e) 
    '' access the columns in the DataBindingComplete event
    dgv.Columns("connections").ReadOnly = True
    dgv.Columns(2).ReadOnly = True
End Sub

Dim f = new System.Windows.Forms.Form()
f.Controls.Add(dgv)
f.ShowDialog()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...