Многократное изменение TextBox.BackColor внутри функции [с#]
От: aquario  
Дата: 21.03.06 17:59
Оценка:
Здравствуйте,

пишу программу на с# с VS2003.

В процессе работы программа должна в теле одной функции несколько раз изменить цвет одного и того же TextBox (ReadOnly = false).

некая функция несколько раз вызывает функцию DiodenUpdate():

          private void DiodenUpdate(string str)
        {
                         for(int i=0; i<14; i++)
                {
                    if (flag==0)
                        LeuchtAnz(wert,i);
                }
            
        }

        private void LeuchtAnz(bool Wert, int countT)
        {    
            switch (countT)
            {
                case 0: 
                    textBox1.Text = System.Convert.ToString(Wert);
                    ColorChange(textBox1,Wert);
                    break;

                                .........................................................


                case 13:
                    textBox14.Text = System.Convert.ToString(Wert);
                    ColorChange(textBox14,Wert);
                    break;
            }
        }
    
        private void ColorChange(System.Windows.Forms.TextBox Textbox, bool Wert)
        {
            if (Wert)
                Textbox.BackColor = System.Drawing.Color.Lime;
            else
                Textbox.BackColor = System.Drawing.Color.Silver;
        }


Но на самом цвет меняется один раз при завершении того метода, который вызвал DiodenUpdate().
Может есть возможность менять TextBox.BackColor на лету?



22.03.06 10:26: Перенесено модератором из '.NET' — TK
Многократное изменение TextBox.BackColor внутри функции [с#]
От: Аноним  
Дата: 21.03.06 18:12
Оценка:
Ндя... Дже-Даи...

У как насчет мысли, что:
— тексбокс просто не успевает прорисовываться
— смена цветов происходит практически мгновенно

Real programmers don't comment their code. If it was hard to write, it should be hard to understand.


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re: Многократное изменение TextBox.BackColor внутри функции
От: aquario  
Дата: 21.03.06 20:36
Оценка:
Здравствуйте, BlackTigerAP, Вы писали:

BTA>У как насчет мысли, что:

BTA>- тексбокс просто не успевает прорисовываться

изначально так и подумал, но debugger при пошаговой прокрутке тоже обновляет только после завершения вызывающей функции,
к тому же между несколькими обновлениями стоит программная задержка, в общем успевать должен.

BTA>- смена цветов происходит практически мгновенно
Re: Многократное изменение TextBox.BackColor внутри функции
От: Powerz Россия https://zagosk.in
Дата: 21.03.06 20:49
Оценка:
Здравствуйте, aquario, Вы писали:

A>Здравствуйте,


A>пишу программу на с# с VS2003.


A>В процессе работы программа должна в теле одной функции несколько раз изменить цвет одного и того же TextBox (ReadOnly = false).


A>некая функция несколько раз вызывает функцию DiodenUpdate():


A>
A>        private void ColorChange(System.Windows.Forms.TextBox Textbox, bool Wert)
A>        {
A>            if (Wert)
A>                Textbox.BackColor = System.Drawing.Color.Lime;
A>            else
A>                Textbox.BackColor = System.Drawing.Color.Silver;
A>        }
A>


A>Но на самом цвет меняется один раз при завершении того метода, который вызвал DiodenUpdate().

A>Может есть возможность менять TextBox.BackColor на лету?

Что-то я не совсем понял, что ты имел ввиду... Может это поможет?


        private void ColorChange(System.Windows.Forms.TextBox Textbox, bool Wert)
        {
            if (Wert)
                Textbox.BackColor = System.Drawing.Color.Lime;
            else
                Textbox.BackColor = System.Drawing.Color.Silver;
            Application.DoEvents();
        }
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
https://zagosk.in
Re[2]: Многократное изменение TextBox.BackColor внутри функц
От: aquario  
Дата: 21.03.06 23:58
Оценка:
Здравствуйте, Powerz, Вы писали:

P>Что-то я не совсем понял, что ты имел ввиду... Может это поможет?



P>
P>        private void ColorChange(System.Windows.Forms.TextBox Textbox, bool Wert)
P>        {
P>            if (Wert)
P>                Textbox.BackColor = System.Drawing.Color.Lime;
P>            else
P>                Textbox.BackColor = System.Drawing.Color.Silver;
P>            Application.DoEvents();
P>        }
P>


Спасибо! То что нужно.
Re[3]: Многократное изменение TextBox.BackColor внутри функц
От: Sanych-sun Украина  
Дата: 22.03.06 07:44
Оценка:
Доброго времени суток!

А не слишком ли круто для такого вот действия юзать Application.DoEvents() может достаточно TextBox.Refresh?
Re[4]: Многократное изменение TextBox.BackColor внутри функц
От: Powerz Россия https://zagosk.in
Дата: 22.03.06 19:37
Оценка:
Здравствуйте, Sanych-sun, Вы писали:

SS>Доброго времени суток!


SS>А не слишком ли круто для такого вот действия юзать Application.DoEvents() может достаточно TextBox.Refresh?


Да, TextBox.Refresh достаточно. Еще можно использовать TextBox.Update();
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
https://zagosk.in
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.