Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/92: Рейтинг темы: голосов - 92, средняя оценка - 4.53
6 / 6 / 3
Регистрация: 20.04.2012
Сообщений: 303

Предлагаемый вариант текста в TextBox должен исчезать при его активации

31.10.2012, 15:43. Показов 19210. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Часто вижу (в основном на сайтах при регистрации) что в полях, которые надо заполнять, находится текст (обычно серый и полупрозрачный) предположительно такой, который должен быть в этом поле. Как только нажимаешь на поле текст пропадает и вводишь то что нужно.

Вот как такое сделать в Windows.Forms.TextBox ???
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
31.10.2012, 15:43
Ответы с готовыми решениями:

Как при активации comboBox, его содержимое вписать в textBox?
Добрый вечер! Подскажите пожалуйста, как при активации comboBox, его содержимое вписать в textBox ? А при изменении элемента перезаписать...

Использование textbox при активации листов (книг)
Друзья, доброго времени суток! Подскажите пожалуйста можно ли использовать textbox для активации книг, листов? В моем случае в файле...

Автоматическое переключение на русский язык при активации textbox
Добрый день! Как сделать, чтобы когда пользователь устанавливал курсор на textbox1, раскладка для этого окна автоматически...

5
 Аватар для Spectral-Owl
608 / 583 / 157
Регистрация: 29.06.2010
Сообщений: 1,620
31.10.2012, 16:11
делаешь
C#
1
textBox1.ForeColor=Color.Silver;
и обрабатываешь событие, какое посчитаешь нужным:
TextChanged - произойдёт при попытке изменить текст (не тру, много обрабатывать)
Click - произойдёт при щелчке мышкой на контрол (тру, но не совсем, если попасть туда с помощью Tab то старый текст останется)
Enter - по моему лучший вариант, совмещает и мышь и Tab

C#
1
2
3
4
5
6
textBox1_Enter(...)
{
textBox1.ForeColor=Color.Black;
textBox1.Text="";
textBox1.Enter-=textBox1_Enter;
}
последняя строчка убирает обработчик при первом заходе в текст-бокс, так чтоб потом можно было исправлять текст
2
6 / 6 / 3
Регистрация: 20.04.2012
Сообщений: 303
31.10.2012, 16:40  [ТС]
а если использовать GetFocus и LostFocus ? То оно при даже при наведении будет срабатывать ?

Добавлено через 3 минуты
мне просто еще придется обрабатывать Leave, так как при попадании в текстбокс, мой серый текст пропадет, но если туда ничего не ввести, и перейти к другим делам желательно что бы текст вернулся что бы помнить что там было.
0
 Аватар для Spectral-Owl
608 / 583 / 157
Регистрация: 29.06.2010
Сообщений: 1,620
31.10.2012, 17:24
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
textBox1_Enter(...)
{
textBox1.ForeColor=Color.Black;
textBox1.Text="";
textBox1.Enter-=textBox1_Enter;//вот этот надо изначально добавить
 
textBox1.Leave+=textBox1_Leave; //изначально обработчик не присваивать!
textBox1.TextChanged+=textBox1_TextChanged; //изначально обработчик не присваивать!
}
 
textBox1_Leave(...)
{
textBox1.ForeColor=Color.Silver;
textBox1.Text="введите, ёпт, хоть чтото!";
textBox1.Enter+=textBox1_Enter;
}
 
textBox1.TextChanged(...)
{
textBox1.Leave-=TextBox1_Leave;
textBox1.TextChanged-=textBox1_TextChanged;
}
вроде так)

Добавлено через 38 секунд
а про фокус не подскажу, не работал с ним)
1
6 / 6 / 3
Регистрация: 20.04.2012
Сообщений: 303
31.10.2012, 18:44  [ТС]
спасибо!
но я обошелся без TextChanged
добавил оба обработчика изначально в текст бокс, когда Enter то делаю так же
C#
1
2
3
textBox1.ForeColor=Color.Black;
textBox1.Text="";
textBox1.Enter-=textBox1_Enter;
просто когда идет Leave я проверяю есть ли текст внутри, что означает что пользователь что-то ввел.
если есть то ничего не делаю, оставляю так как есть, если уйти и повторно клацнуть то ничего не будет так как обработчик убрал
C#
1
textBox1.Enter-=textBox1_Enter;
а если нет ничего то ввожу обратно серое сообщение и подключаю Enter обратно
C#
1
2
3
textBox1.ForeColor=Color.Silver;
textBox1.Text="введите хоть чтото!";
textBox1.Enter+=textBox1_Enter;
1
0 / 0 / 0
Регистрация: 18.02.2014
Сообщений: 12
12.03.2014, 23:54
А не могли бы вы код выложить полностью? Буду очень признателен.

Добавлено через 38 минут
Подскажите где ошибка:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace passForm
{
    /// <summary>
    /// Description of MainForm.
    /// </summary>
    public partial class PasswordForm : Form
    {
        int attcount = 1;
        
        public PasswordForm()
        {
 
            InitializeComponent();
            textBox1.Enter += textBox1_Enter;
            textBox1.Text = "Введите пароль";
            textBox1.TextAlign = HorizontalAlignment.Center;
          
        }
        
        private void PasswordForm_Load(object sender, EventArgs e)
        {
        }
        /// <summary>
        /// При получении фокуса
        /// </summary>
        private void textBox1_Enter(object sender, EventArgs e)
        {
            textBox1.ForeColor = SystemColors.WindowText;//Темный
            textBox1.Text = "";
            textBox1.TextAlign = HorizontalAlignment.Center;
            textBox1.UseSystemPasswordChar = true;
        }
        /// <summary>
        /// При потере фокуса
        /// </summary>
        private void textBox1_Leave(object sender, EventArgs e)
        {
            if(textBox1.Text == "")
            {
            textBox1.ForeColor = SystemColors.WindowFrame;//Серый
            textBox1.UseSystemPasswordChar = false;
            textBox1.Enter += textBox1_Enter;
            textBox1.Text = "Введите пароль";
            textBox1.TextAlign = HorizontalAlignment.Center;
            }
            else
                textBox1.Enter -= textBox1_Enter;
        }
 
        /// <summary>
        /// Показывать/скрывать пароль
        /// </summary>
        private void checkBox1_CheckedChanged(object sender, EventArgs e)
        {
            if (checkBox1.Checked)
            {
                textBox1.UseSystemPasswordChar = false;
            }
            else
            {
                textBox1.UseSystemPasswordChar = true;
            }
        }
 
  
 
        private void button1_Click(object sender, EventArgs e)
    {
        attcount++;
        if (comboBox1.Text == "User" && textBox1.Text == "pass")
        {
            /*Form1 f = new Form1();
 
            f.Show();*/
            MessageBox.Show("Запуск формы 1");
 
        }
        else
        {
            if (comboBox1.Text == "Admin" && textBox1.Text == "pass")
            {
                /*Form1 f = new Form1();
 
                f.Show();*/
                MessageBox.Show("Запуск формы 2");
 
            }
            else
            {
                if (comboBox1.Text == "ES" && textBox1.Text == "pass")
                {
                    /*Form1 f = new Form1();
 
                    f.Show();*/
                    MessageBox.Show("Запуск формы 3");
 
                }
                else
                {
                    if (comboBox1.Text == "")
                    {
                        /*Form1 f = new Form1();
 
                        f.Show();*/
                        MessageBox.Show("Выберите пользователя");
 
                    }
                    else
                    {
                        MessageBox.Show("Неправильный пароль");
                        if (attcount > 3) Application.Exit();
                        textBox1.Clear();
                    }
                }
            }
        }
        
    }
 
         
}
}
Как тоже самое реализовать для comboBox?
Заранее спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.03.2014, 23:54
Помогаю со студенческими работами здесь

Чтение текста из String и создание на его основе текста в Textbox
Дорогие друзья, суть проблемы: допустим у нас есть label в котором посредством запроса WMI получаем информацию (информация из разряда...

Удаление текста при активации пользователем EditText
Доброго времени суток! у меня возник такой вопрос как сделать так чтобы при нажатии на EditText введенный текст по умолчанию сам удалялся и...

Событие при активации textbox. Или событие при изменения фокуса
Здравствуйте. Подскажите можно ли создать свое событие происходящий вовремя активации textbox. Имеется ввиду создать свой класс...

FormatException при событии изменения текста в TextBox при нулевой длине текста
Здравствуйте! Нужна ваша помощь. Я новичок в до диез, и столкнулся с проблемой. Имеется форма, на ней textBox. пишу обработчик события...

Сравнение текста введенного в Textbox по name. При этом Textbox создан динамически
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru