2014-10-23 2 views
2

Я видел несколько сообщений, подобных этому вопрос, но я не придумал мой ответ так, я думал, что плавать его снова, чтобы посмотреть, что идет вверх ...Проверить флажки в DataGridView программного

Я использую ExcelDNA для интеграции API с Excel с помощью C# .NET. У меня есть DataGridView, и я хотел бы проверить элементы, которые уже существуют в списке.

Следующий код работает при привязке к событию с нажатием кнопки, но НЕ, когда код вызывается в методе.

private void SelectAllItems() 
{ 
    foreach (DataGridViewRow row in itemsBySupplier.Rows) 
    { 
     DataGridViewCheckBoxCell check = (DataGridViewCheckBoxCell)row.Cells["selectItem"]; 
     check.Value = check.TrueValue; 
    } 
} 

Я бегу в том же номере в другом месте, тоже:

foreach (DataGridViewRow row in itemsBySupplier.Rows) 
{ 
    DataGridViewCheckBoxCell check = (DataGridViewCheckBoxCell)row.Cells["selectItem"]; 

    string hid = row.Cells["Hid"].Value.ToString(); 
    if (Ws.ToCreate[_supplier].Count(i => i.Hid == hid) > 0) 
    { 
     check.Value = check.TrueValue; 
    } 
} 

Я исследовал это в течение нескольких часов, придумывая совершенно пуст. Любая помощь будет принята с благодарностью.

+0

Вы можете сделать это, просто установив значение в значение true или false. DataGridView.Rows [0] .Cells [0] .Value = true; Пример проверяет ячейку. – deathismyfriend

+0

можете ли вы опубликовать код/​​какое событие вы его используете, потому что код, который вы указали, не работал при помещении в событие. Возможно, вы обращаетесь к чему-то некорректно – MethodMan

ответ

3

Вы можете сделать это, установив значение в значение true. Вам не нужно бросать в ячейку флажка.

private void SelectAllItems() 
    { 
     foreach (DataGridViewRow row in itemsBySupplier.Rows) 
     { 
      // This will check the cell. 
      row.Cells["selectItem"].Value = "true"; 
     } 
    } 

foreach (DataGridViewRow row in itemsBySupplier.Rows) 
{ 
    string hid = row.Cells["Hid"].Value.ToString(); 

    if (Ws.ToCreate[_supplier].Count(i => i.Hid == hid) > 0) 
    { 
     row.Cells["selectItem"].Value = "true";       
    } 
} 
Смежные вопросы