Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.15.218.254] |
|
Сообщ.
#1
,
|
|
|
Здравствуйте, прошу вашей помощи. Есть такой код C#:
Dictionary<int, Color> colorsList = new Dictionary<int, Color>(); private void toolStripButton5_Click(object sender, EventArgs e)//ИЗМЕНЕНИЕ ЦВЕТА СТРОКИ { for (int i = 0; i < listView1.Items.Count; i++) { if (listView1.Items[i].Selected == true) { if (toolStripComboBox1.Text == "Красный") { listView1.Items[i].BackColor = Color.Red; if (!colorsList.ContainsKey(i)) { colorsList.Add(i, Color.Red); } else { colorsList[i] = Color.Red; } } else if (toolStripComboBox1.Text == "Желтый") { listView1.Items[i].BackColor = Color.Yellow; if (!colorsList.ContainsKey(i)) { colorsList.Add(i, Color.Yellow); } else { colorsList[i] = Color.Yellow; } } else if (toolStripComboBox1.Text == "Зеленый") { listView1.Items[i].BackColor = Color.Green; if (!colorsList.ContainsKey(i)) { colorsList.Add(i, Color.Green); } else { colorsList[i] = Color.Green; } } else if (toolStripComboBox1.Text == "Без цвета") { listView1.Items[i].BackColor = Color.White; if (!colorsList.ContainsKey(i)) { colorsList.Add(i, Color.White); } else { colorsList[i] = Color.White; } } } } } void SetColor() { foreach (var c in colorsList) { if (listView1.Items.Count >= c.Key) listView1.Items[c.Key].BackColor = c.Value; } } Выбранная строка в listview цветом выделяется, но после обновления данных из mysql в форму происходит сброс цвета соответственно. Код обновления просто по кнопке: private async void toolStripButton4_Click(object sender, EventArgs e)//ОБНОВЛЕНИЕ ДАННЫХ { listView1.Items.Clear(); await LoadBanksAsync(); } я понимаю что listView1.Items.Clear(); сбрасывает все с listview, но без нее начинается дублирование данных. Как сохранить цвет? Подмогите пожалста. |
Сообщ.
#2
,
|
|
|
Есть мысли ребят? Что нужно скажите, скину код. Маюсь уже долго
|
Сообщ.
#3
,
|
|
|
mkmen100500
Цвет выбирает пользователь? Добавлено Да и если пользователь красил одну строку, а после обновления там уже другая, которую возможно ему красить не нужно. |
Сообщ.
#4
,
|
|
|
^D^imaда, цвет выбирает пользователь, с этой проблемой я разобрался засунув SetColor(); в обновление данных. Только при закрытии и новом открытии формы цвет все равно пропадает
private async void toolStripButton4_Click(object sender, EventArgs e)//ОБНОВЛЕНИЕ ДАННЫХ { listView1.Items.Clear(); await LoadBanksAsync(); SetColor(); } Добавлено ^D^ima и после того как я окрасил существующую строку, при добавлении новой возникает Исключение типа "System.ArgumentOutOfRangeException" возникло в mscorlib.dll, но не было обработано в коде пользователя Дополнительные сведения: InvalidArgument=Значение '0' недопустимо для 'index'. Еще посмотрел что если в таблице более одной строки и все их окрасить, обновить то выбивает ту же ошибку. Решено только для одной строки в общем. |
Сообщ.
#5
,
|
|
|
есть у кого какие мысли?
|
Сообщ.
#6
,
|
|
|
UP
|
Сообщ.
#7
,
|
|
|
Ребята помогите утопающему))
|