Изменить крошечный int в datagridview с флажком

0

Я заполняю DataGridView данными из базы данных MySQL, одно из значений было установлено на tiny int (boolean), я хотел бы, чтобы он выглядел как флажок в DGV вместо 0 и 1, как я могу это сделать?

Мой код для ввода данных в DGV.

MySqlConnection myConn = new MySqlConnection(conStr);
adapter = new MySqlDataAdapter();
adapter.SelectCommand = new MySqlCommand(query, myConn);
MySqlCommandBuilder cb = new MySqlCommandBuilder(adapter);
myConn.Open(); //da.Fill(ds, sTable); da.Update(ds, sTable); myConn.Close();

ds = new DataSet();
adapter.Fill(ds, sTable);
myConn.Close();

dataGridView1.Refresh();

dataGridView1.DataSource = ds;
dataGridView1.DataMember = sTable;
dataGridView1.Columns[0].Visible = false; 

Мне удалось сменить ячейку на флажок:

for (int i = 0; i < dataGridView1.RowCount; i++)
{
this.dataGridView1.Rows[i].Cells[7] = new DataGridViewCheckBoxCell();
}

но я думаю, что это не радует, что он получает 0 и 1 вместо истинного и ложного.

По-видимому, он работает по назначению, но я получаю сообщение об ошибке:

Изображение 174551

Теги:
visual-studio
checkbox
datagridview

2 ответа

0

Вы можете найти пример в msdn https://msdn.microsoft.com/ru-ru/library/system.windows.forms.datagridviewcheckboxcolumn(v=vs.110).aspx

private void AddOutOfOfficeColumn()
{
 DataGridViewCheckBoxColumn column = new DataGridViewCheckBoxColumn();
 {
     column.HeaderText = ColumnName.OutOfOffice.ToString();
     column.Name = ColumnName.OutOfOffice.ToString();
     column.AutoSizeMode = 
        DataGridViewAutoSizeColumnMode.DisplayedCells;
     column.FlatStyle = FlatStyle.Standard;
     column.ThreeState = true;
     column.CellTemplate = new DataGridViewCheckBoxCell();
     column.CellTemplate.Style.BackColor = Color.Beige;
 }

 DataGridView1.Columns.Insert(0, column);
}
0
for (int i = 0; i < dataGridView1.RowCount; i++)
{
if(dataGridView1.Rows[i].Cells[7].Value != null)
{
this.dataGridView1.Rows[i].Cells[7] = new DataGridViewCheckBoxCell();
}
}

Это исправило это для меня красиво, очевидно программа показала ошибку, потому что считала, что это нуль.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню