Модераторы: gambit, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> textbox_Enter and textbox_Leave 
V
    Опции темы
blackwitcher
Дата 15.6.2015, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 11.1.2010

Репутация: нет
Всего: нет



не всё правильно работает, помогите smile 


Код

 public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();

        }

        private void Form2_Load(object sender, EventArgs e)
        {
            textBox1.Text = "Создать задачу";
            textBox1.ForeColor = Color.Gray;
            richTextBox1.Text = "Oписание задачи";
            richTextBox1.ForeColor = Color.Gray;
            textBox2.Text = DateTime.Now.ToString("dd/MM/yy");
        }

        private void textBox1_Enter(object sender, EventArgs e)
        {
            textBox1.Text = "";
            textBox1.ForeColor = Color.Black;
            
        }

        private void textBox1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter) 
            {
                button1_Click(this, EventArgs.Empty);
            }

        }

        private void button1_Click(object sender, EventArgs e)
        {
            Form3 ob3 = new Form3();
            ob3.Show();
        }

        private void richTextBox1_Enter(object sender, EventArgs e)
        {
            if (richTextBox1.Text == "Oписание задачи")
            {
                richTextBox1.ForeColor = Color.Black;
                richTextBox1.Enter -= richTextBox1_Enter;
                richTextBox1.Text = "";   
            }
            if (richTextBox1.Text == "")
            {
                richTextBox1.ForeColor = Color.Gray;
                richTextBox1.Enter += richTextBox1_Enter;
                richTextBox1.Text = "Oписание задачи";
                
            }
        }

        private void textBox1_Leave(object sender, EventArgs e)
        {
            if (textBox1.Text == "")
            {
                textBox1.ForeColor = Color.Gray;
                textBox1.Enter += textBox1_Enter;
                textBox1.Text = "Создать задачу";
            }
            else
            {
                textBox1.Enter -= textBox1_Enter;
            }
        }

    }

PM MAIL   Вверх
infarch
Дата 16.6.2015, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 526
Регистрация: 13.3.2009

Репутация: нет
Всего: 1



А точнее? Что не так?
PM MAIL   Вверх
blackwitcher
Дата 16.6.2015, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 11.1.2010

Репутация: нет
Всего: нет



Если переходить с одной textBox в другой textBox то начинается глюк


Присоединённый файл ( Кол-во скачиваний: 1 )
Присоединённый файл  test02.rar 151,76 Kb
PM MAIL   Вверх
infarch
Дата 17.6.2015, 11:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 526
Регистрация: 13.3.2009

Репутация: нет
Всего: 1



Запускать и тестировать мне, честно говоря, лень ) Но я подозреваю что проблема в постоянных манипуляциях с эвент хендлерами. Вот вам заготовка, посмотрите:
Код

        private void Form1_Load(object sender, EventArgs e)
        {
            foreach (Control c in this.Controls)
            {
                if (c is TextBox)
                {
                    TextBox tb = (TextBox)c;
                    SetEmptyStyle(tb);
                    tb.Tag = true;
                    tb.Enter += tb_Enter;
                    tb.Leave += tb_Leave;
                }
            }
        }

        void tb_Enter(object sender, EventArgs e)
        {
            TextBox tb = sender as TextBox;
            if ((bool)tb.Tag)
                SetNormalStyle(tb);
        }

        void tb_Leave(object sender, EventArgs e)
        {
            TextBox tb = sender as TextBox;
            bool is_empty = string.IsNullOrEmpty(tb.Text);
            if (is_empty)
                SetEmptyStyle(tb);
            tb.Tag = is_empty;
        }

        private void SetNormalStyle(TextBox tb)
        {
            tb.ForeColor = Color.Black;
            tb.Text = string.Empty;
        }

        private void SetEmptyStyle(TextBox tb)
        {
            tb.ForeColor = Color.Gray;
            tb.Text = "Enter something";
        }


Находим все текстбоксы формы и учим их менять стиль когда они не в фокусе и пустые. не самый лучший пример конечно, тут надо в сторону data binding копать. Но для старта сойдет )
PM MAIL   Вверх
blackwitcher
Дата 17.6.2015, 11:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 11.1.2010

Репутация: нет
Всего: нет



Спасибо smile  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




[ Время генерации скрипта: 0.1155 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.