Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
2 / 2 / 0
Регистрация: 26.01.2013
Сообщений: 76
1

Запись в masketTextBox

05.03.2013, 12:30. Показов 1006. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день. Прошу помочь или подсказать. Есть maskedTextBox с шаблоном IPAddress&Port(***.***.***.***:****).
как сделать предел до 255, первых 4х актетов и как использовать в дальнейшем. Буду благодарен.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.03.2013, 12:30
Ответы с готовыми решениями:

Четыре кнопки на форме: добавить запись, удалить запись, закрыть, найти запись
Private Sub КнопкаДобавитьЗапись_Click() On Error GoTo Err_КнопкаДобавитьЗапись_Click ...

Запись в файл - проверить, не идет ли в него запись, чтобы не генерировалось исключение
Доброе время суток! Вот такой пример: Imports System Imports System.IO Module Module1 ...

Как сменить построчную запись в столбике DBGrid на запись столбиком?
Ввод записи в компонент DBGrid через TEdit.. Как сделать так, чтобы в компоненте TEdit можно было...

Как создать запись в главной таблице и связанную запись в подчинённой?
Логика: - нажимаю кнопку на форме "00_00_ФОРМА_ОСН"; - открывается форма "01_01_ПроектыСтлб"; -...

2
338 / 327 / 154
Регистрация: 29.10.2012
Сообщений: 949
05.03.2013, 20:36 2
Лучший ответ Сообщение было отмечено Kashi как решение

Решение

Не совем, то что просили, но часть.
Небольшой класс для работы полей textBox с IP адресами (IpCheck). Для реализации использовалось 4 элемента TextBox, движение между которыми отследивалось внутри класса. Для использования класса необходимо:
1) При создании объекта, передать в конструктор 4 элемента формы типа TextBox
C#
1
2
3
4
5
IpCheck ipc //IpCheck  - наименование класса;
private void Form1_Load(object sender, EventArgs e)
{
    ipc = new IpCheck(ref textBox1, ref textBox2, ref textBox3, ref textBox4);
}
2) Для каждого элемента TextBox на событие KeyUp"состваить ответную реакцию":
C#
1
2
3
4
5
6
private void textBox1_KeyUp(object sender, KeyEventArgs e)
{
    ipc.KeyLeftRight(ref textBox1, e);
    ipc.ChangeTextTB(ref textBox1);
}
...
3) Для каждого элемента TextBox на событие KeyPress
C#
1
2
3
4
5
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
    ipc.KeyPressTB(ref e);
}
...
Вот код класса:
Кликните здесь для просмотра всего текста
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
class IpCheck
    {
        private TextBox tb1, tb2, tb3, tb4;
    
        public IpCheck() { }
        //Создаем конструктор, который принимает нужные поля TextBox
        public IpCheck(ref TextBox _tb1, ref TextBox _tb2, ref TextBox _tb3, ref TextBox _tb4)
        {
            tb1 = _tb1;
            tb2 = _tb2;
            tb3 = _tb3;
            tb4 = _tb4;
            tb1.TextAlign = tb2.TextAlign = tb3.TextAlign = tb4.TextAlign = HorizontalAlignment.Center;
        }
 
        //Метод отслеживает введенное значение > 255 или нет
        public void ChangeTextTB(ref TextBox tb)
        {
            int k = tb.SelectionStart;
            int i;
            try
            {
                 i= Convert.ToInt32(tb.Text);
            }
            catch
            {
                i=0;
            }
            tb.SelectionStart = k;
 
            if (i > 255)
            {
                tb.Text = "255";
                tb2.Focus();// = true;
                if (tb == tb1) tb2.Focus();
                else if (tb == tb2) tb3.Focus();
                else if (tb == tb3) tb4.Focus();
                else if (tb == tb4) tb4.Focus();
            }
            else
            {
                tb.Text = Convert.ToString(i);
            }
        }
 
        //Метод отслеживате нажатие кнопок влево и вправо 
        public void KeyLeftRight(ref TextBox tb, KeyEventArgs e)
        {
            // ->  39
            // <-  37
            int k = tb.SelectionStart;
            if ((e.KeyValue == 39) && (tb.SelectionStart == tb.Text.Length))
            {
                if (tb == tb1) { tb2.Focus(); tb2.Select(0, 0); }
                else if (tb == tb2) { tb3.Focus(); tb3.Select(0, 0); }
                else if (tb == tb3) { tb4.Focus(); tb4.Select(0, 0); }
                tb.SelectionStart = k;
            }
            else if ((e.KeyValue == 37) && (tb.SelectionStart == 0))
            {
                if (tb == tb2) { tb1.Focus(); tb.Select(tb1.Text.Length,0); }
                else if (tb == tb3) { tb2.Focus(); tb.Select(tb1.Text.Length, 0); }
                else if (tb == tb4) { tb3.Focus(); tb.Select(tb1.Text.Length, 0); }
                
            }
        }
        //Метод отслеживает нажатия, ограничивает введение символов - цифры, backspace, delete
        public void KeyPressTB(ref KeyPressEventArgs e)
        {
            if ((!Char.IsDigit(e.KeyChar)) && (e.KeyChar != 8) && (e.KeyChar != 46)) e.Handled = true;
        }
 
        //Выводит на экран IP
        public override string ToString()
        {
            return tb1.Text + "." + tb2.Text + "." + tb3.Text + "." + tb4.Text;
        }
    }


Если посидеть еще и подумать, то можно написать более оптимальный код. Есть баг, надо чтобы поля TextBox при запуске были не пустыми.
Вложения
Тип файла: zip IpAddresCheck.zip (76.3 Кб, 3 просмотров)
1
2 / 2 / 0
Регистрация: 26.01.2013
Сообщений: 76
05.03.2013, 23:30  [ТС] 3
Большое спасибо, будет от чего отталкиваться.
0
05.03.2013, 23:30
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.03.2013, 23:30
Помогаю со студенческими работами здесь

Поменять любую запись местами с последней и удалить последнюю запись.
Помогите пожалуйста! Мне для программы, которая использует records (записи), нужно написать...

Запретить запись в базу, если в базе уже есть запись
Здравствуйте уважаемые форумчане. У меня есть база данных в которую пользователи добавляют адреса...

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

люди добрые! нужно программа инверсная запись чисел, запись из инверсной в обычную
помогите сделать программа или датьсходник, можно на с++ или на паскале спасибо вам за раннее...

Запретить запись в базу, если в базе уже есть такая запись - PHP БД
Люди добрые помогите кто чем сможет. Есть запрос $number = $_POST; $datetime = $_POST; $dept...

Текущая запись отсутствует. Хотя запись есть. Не работает метод Seek помогите.
Всем привет. Не могу найти причину эту проблем. Когда запускаю модуль эту ошибок &quot;Текущая запись...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru