Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Выделение строки цветом (продолжение)


Автор: Fyrklod 23.7.2007, 23:49
Не пишу в старом топике потому что не уверен что его уже откроют поэтому задаю вопрос в новом... начало описывалось тут ---> http://forum.vingrad.ru/topic-164145.html <-----

Продолжение

Возникла проблема такого характера.. испробовал то что мне сказали сделать т.е. 
Код

        DataGridView.Columns[2].DefaultCellStyle.BackColor = System.Darwing.Color.Red

И все  было чики-пуки...
Пока я не написал что-то вроде
Код

void ColorSelect()
        {
            MySqlDataReader reader = null;
            string SQL = "SELECT INumPc, Otdel, WK.FIO, WK.RoomID FROM pcdata_ as PC, worker_ as WK, room_ as RM WHERE PC.Pasport = Wk.Pasport and WK.RoomID=RM.RoomID and inumpc != '0' order by INumPc, Otdel";
            MySqlCommand cmd = new MySqlCommand(SQL, Main.conn);
            try
            {
                int i = 0;
                string st = "";
                reader = cmd.ExecuteReader();
                while (reader.Read())
                {
                    st = reader.GetString("RoomID");
                    if (st == "305")
                    {
                        InfoPC.Rows[i].DefaultCellStyle.BackColor = System.Drawing.Color.Silver;
                        DataPC.Rows[i].DefaultCellStyle.ForeColor = System.Drawing.Color.Red;
                        comboBox1.Items.Add(st + " " + i);
                    }
                    i++;

                }
            }
            catch (MySqlException ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                if (reader != null)
                    reader.Close();
            }
        }


и здесь уже никакого выделения нет... скажете может условие не выполняется... проверил как раз следующим
Код

                    if (st == "305")
                    {
                        ...
                        comboBox1.Items.Add(st + " " + i);
                    }

В комбобокс  заполняется правильно....
Подскажите пожалуйста где можно искать ошибку....

Автор: Voyager 24.7.2007, 08:56
Зачем заполнять комбобоксы для проверки? Прогони под отладчиком и посмотри что не так работает.

Автор: stashe 24.7.2007, 09:10
System.Darwing.Color.Red  smile  МогЁшь   smile 

Попробуй не Систем Дарвин, а ...
и не Колумн а Роу нада, сори, мои бока т.е. 
 DataGridView.Rows[2].DefaultCellStyle.BackColor
типа того, щяз не могу посмотреть

Автор: stashe 24.7.2007, 09:34
А хз как программно делать, я сделал так- в Дизайнере, в гриде в окне свойства -> Columns->DefaultCellStyle->SelectionBackColor
и программно при загрузке грида выставил DataGridView.SelectionMode = DataGridViewSelectionMode.FullRowSelect;

Все работает

Автор: Fyrklod 24.7.2007, 16:15
Цитата

System.Darwing.Color.Red    МогЁшь    

 smile ну оппечаткался.... ну виноват...
а насчет Rows ...так и писал... просто по провычке написал колумнс.... чаще работаю...
Ты же видишь что в основном куске 
Код

 if (st == "305")
                    {
                        InfoPC.Rows[i].DefaultCellStyle.BackColor = System.Drawing.Color.Silver;
                        DataPC.Rows[i].DefaultCellStyle.ForeColor = System.Drawing.Color.Red;
                        comboBox1.Items.Add(st + " " + i);
                    }

идет Ровс.. а смысл не поменялся... в общем не работает

Автор: stashe 25.7.2007, 09:39
поюзай в дизайенере эту хрень Columns->DefaultCellStyle->SelectionBackColor,(вроде там выставлються эти дела) если сможешь там поменять цвет одной ячейки, то потом просто выставь DataGridView.SelectionMode = DataGridViewSelectionMode.FullRowSelect;

Добавлено через 1 минуту и 45 секунд
леплю уже наугад, все что заню  smile 
DataGridViewCellStyle.SelectionBackColor

Автор: mr.DUDA 28.7.2007, 19:43
Может с индексом строки проблема ?
Вообще хотя бы одна строка выделяется цветом ?

Автор: Fyrklod 28.7.2007, 21:00
Да нет... я отладчиком проверял в нужный момент заходит в условие, да и плюс ComboBox поставил... тоже нужные для меня данные записываются...  не могу понять в чем проблема хоть убейте
нет ни одна строка не выделяется ... ну у меня пока пробное заполнение... строк 4 из них 2 должны подчеркнуться...не хотят...а в комбобокс влазят

Автор: stashe 31.7.2007, 17:09
Я так и не понял, после того как ты в дизайнере выставил эти свойства у тебя меняеться цвет ячейки? если нет, то ты не там смотришь...
если меняеться, то выставь свойство (можешь ручками) DataGridView.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
опять отпишись, теперь первая строка выделена твоим цветом?
если да, то скорее всего у тебя что-то с индексацией или типа того...
Забудь пока про исходники и поковыряй дизайнер

Напиши на каком шаге у тебя уже не работает как надо

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)