У меня есть datagridview с 9 столбцами. Я просто пытаюсь взять значение в столбце 5 и вычесть его из столбца 6, а затем отобразить результат в столбце 9. Это кажется достаточно простым, я знаю, что это делается в excel все время. Но я просто не могу понять это. Нужно ли мне создавать новый класс с помощью метода, называемого вычислением столбцов? Или у класса datagridview есть что-то уже построенное, которое может справиться с этим?Как сделать простую математику в datagridview
ответ
public void dataGridView_Cellformatting(object sender, DataGridViewCellFormattingEventArgs args)
{
if(args.ColumnIndex == 9) //Might be 8, I don't remember if columns are 0-based or 1-based
{
DataGridViewRow row = dataGridView.Rows[e.RowIndex];
args.Value = (int)row.Cells[6].Value - (int)row.Cells[5].Value;
}
}
Ссылки: CellFormatting событие, DataGridViewcellFormattingEventArgs
Спасибо, синий Раджа. Я получаю сообщение об ошибке Ошибка \t \t «Оператор» - «не может применяться к операндам типа« System.Windows.Forms.DataGridViewCell »и« System.Windows.Forms.DataGridViewCell »\t« любые мысли? –
EB - Это потому, что row.Cells [index] вернет объект DataGridViewCell. Вы должны вызвать свойство Value ячейки и проанализировать его на целое число, как это сделал Энтони Пегем. Кстати, код Raja будет вызываться только в том случае, если вы отредактируете что-то в столбце 9, что я не уверен, что вы хотите. –
@ EB: Исправлено. Однако, наверное, я должен был спросить; как вы хотите его использовать? Наверное, я полагал, что у вас есть столбцы 5 и 6, привязанные к источнику данных, который обычно вы делаете. Однако, если вы пытаетесь использовать datagrid, как вы бы превзошли, было бы лучше обработать событие CellEndEdit. –
Пример кода, приведенного ниже, показывает, как вы можете получать значения в заданной позиции (столбцы и строки, индексированные по 0), а затем попытаться преобразовать эти значения в числа. Затем вы можете сохранить расчет обратно в другую ячейку в DataGridView.
object value1 = dataGridView1[4, 0].Value;
object value2 = dataGridView1[5, 0].Value;
int val1, val2;
if (int.TryParse(value1.ToString(), out val1) && int.TryParse(value2.ToString(), out val2))
{
dataGridView1[8, 0].Value = val1 - val2;
}
else
{
MessageBox.Show("cannot subtract, invalid inputs.");
}
Спасибо, что ответили Энтони. Я реализовал ваш код в классе формы. он выглядел хорошо, но когда я отлаживал его, я ввел значения в 2 столбца и ничего не произошло в столбце 9. Должен ли я реализовать этот код в конкретном обработчике событий? Я пробовал его в обработчике событий DataGridView_CellEndEdit, и снова ничего не произошло. Должен ли я использовать ваш код в событии buttonclick? –
Bind вашего DataGridView к DataTable, и придающие столбец соответствующее выражение. Попробуйте экстраполировать этот пример:
DataTable table = new DataTable();
table.Columns.Add("Column1", typeof(int));
table.Columns.Add("Column2", typeof(int));
table.Columns.Add("Column3", typeof(int), "Column1+Column2");
dataGridView1.DataSource = table;
где 'dataGridView1' является типичным элементом управления DataGridView.
- 1. Попытка сделать простую математику
- 2. Stylus не может сделать простую математику
- 3. Как сделать простую математику с переменной min/max в SAS
- 4. Как использовать простую математику в Slick запросов
- 5. C#: Как сделать простую математику с округлением по целым числам?
- 6. Wordpress comments - выполнить простую математику?
- 7. Tkinter пытается простую математику с использованием GUI
- 8. Как сделать математику на NSNumber
- 9. Как сделать математику со строкой?
- 10. Как сделать математику с NSNumbers
- 11. Force SASS сделать математику
- 12. Сделать математику списка - python
- 13. Как сделать простую нахуйку?
- 14. Как принять значение двух полей EditText и выполнить простую математику
- 15. CSS sprites - могу ли я сделать простую математику в CSS как-то?
- 16. как поставить пролет под другим, чтобы написать простую математику?
- 17. Как сделать математику в пакетном-файле
- 18. Как сделать математику в preg_replace PHP
- 19. Как сделать математику в шаблоне Django?
- 20. как сделать математику в запросе mongoose.js
- 21. Можно ли написать регулярное выражение, которое может проверять простую математику?
- 22. Может ли mod_rewrite сделать математику?
- 23. Как сделать простую систему костей
- 24. Как сделать простую страницу входа?
- 25. Как сделать простую очередь задач
- 26. Как удалить символ и сделать математику
- 27. Как сделать математику с массивом (добавить +1)
- 28. Как сделать математику с бинговыми картами?
- 29. Почему я не могу заставить простую математику работать?
- 30. Как сделать математику Pow с десятичными знаками
Общий совет: не используйте DataGridView в качестве хранилища данных. Привяжите его к таблице или списку. –