В datagridview у меня есть счетчики, которые обновляются с нуля посредством входящих и исходящих сообщений. У этих сообщений есть типы, поэтому тип A будет увеличиваться, если сообщение типа A было отправлено либо внутрь, либо снаружи. Я разрешил сортировку пользователей, чтобы пользователь мог видеть, какие типы сообщений отправляются или получают меньше всего или больше всего. Однако, поскольку я обновляю конкретную ячейку в строке сообщения, после сортировки строк будет другое число и, следовательно, вместо этого будет изменено значение другого счетчика. Например,

У меня есть типы A, B и C.

У A 4 сообщения, у B - 6 сообщений, у C - 32 сообщения.

Допустим, сейчас поступает сообщение типа C, но пользователь сортирует столбцы, и тогда порядок будет следующим:

С 32 В 6 А 4.

Поскольку это порядок, моя проблема в том, что я обновляю значение ячейки. Итак, в сетке данных я бы обновил значение ячейки [1, 2]. Это означает, что тогда у A будет счетчик 5, а у C по-прежнему будет счетчик 32, что неверно. Я знаю, что тип сообщения - C, поэтому есть ли способ индексировать строки, чтобы я точно знал, какое значение ячейки строки нужно обновить, а не обновлять саму ячейку? Это приводит к довольно большой ошибке, и строки не имеют имен, поэтому я не знаю, как подойти к этой проблеме. Я подумываю использовать имя ячейки заголовка и установить ячейку заголовка строк на A, B, C, и всякий раз, когда появляется тип C, я ищу, в какой строке находится ячейка заголовка 'C', а затем перехожу к столбцу и обновите номер ячейки.

Любое понимание приветствуется. Большое спасибо!

.NET 3.5 с пакетом обновления 1 (SP1). -tf.rz

0
tf.rz 26 Авг 2011 в 02:48

2 ответа

Лучший ответ

Вам нужно искать строки после каждого сообщения. Самый простой способ - итерация

foreach (DataGridViewRow row in dataGridView1.Rows) 
1
Jacob Seleznev 25 Авг 2011 в 22:56