Сводка элементов управления WinForm-Text

искусственный интеллект

 

содержание

1. Общие атрибуты:

Текстовое свойство

Свойство MaxLength

Многострочное свойство

Свойство HideSelection

Свойство только для чтения

Свойство PasswordChar

Свойство ScrollBars

Свойство SelectionLength

Свойство SelectionStart

Свойство SelectedText

Lines

Modified

Свойство TextLength

WordWrap

Свойство PasswordChar

Свойство ShortcutsEnabled

2. Общие методы:

Метод AppendText

Очистить метод

Метод фокусировки

Метод копирования

Метод резки

Метод вставки

Метод отмены

Метод ClearUndo

Выберите метод

Метод SelectAll

3. Общие события

Событие GotFocus

Событие LostFocus

Событие TextChanged

4. Примеры использования

Ctrl+C/V/X и другие комбинации клавиш системы экранирования.

Отключить правую кнопку мыши

Цвет отображения сегмента

TextBox автоматически выбирает все, когда получает фокус ввода

Можно вводить только цифры и десятичные дроби

Можно вводить только положительные целые числа, содержащие не более двух цифр.

Можно вводить только китайские иероглифы

Может вводить только цифры, символы и блокировать китайские символы

написать класс проверки

Пользовательский элемент управления TextBox, граница имеет только нижнюю горизонтальную линию.


1. Общие атрибуты:

  • Текстовое свойство

Свойство Text является наиболее важным свойством текстового поля, поскольку отображаемый текст содержится в свойстве Text. По умолчанию в текстовое поле можно ввести до 2048 символов. Если для свойства MultiLine установлено значение true, вы можете ввести до 32 КБ текста. Свойство Text можно задать во время разработки с помощью окна [Properties] или во время выполнения с помощью кода или пользовательского ввода. Текущее содержимое текстового поля можно получить во время выполнения, прочитав свойство Text.

  • Свойство MaxLength

Он используется для установки максимальной длины символов, которые можно ввести в текстовое поле.Когда значение этого свойства равно 0, количество вводимых символов не ограничено.

  • Многострочное свойство

Используется для установки того, можно ли вводить текст в текстовом поле в несколько строк и отображать в нескольких строках. При значении true разрешено несколько строк. При значении false многострочное отображение не допускается.Если текст превышает ширину текстового поля, лишняя часть не отображается.

  • Свойство HideSelection

Он используется для определения того, отображается ли выделенный текст в выбранном режиме после того, как фокус покинет текстовое поле.Если значение равно true, он не будет отображаться в выбранном режиме.Если значение равно false, он все равно будет отображается в выбранном режиме.

  • Свойство только для чтения

Получает или задает значение, указывающее, доступен ли текст в текстовом поле только для чтения. Значение true доступно только для чтения, а значение false доступно для чтения и записи.

  • Свойство PasswordChar

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

  • Свойство ScrollBars

Используется для установки режима полосы прокрутки, есть четыре варианта: ScrollBars.None (без полосы прокрутки), ScrollBars.Horizontal (горизонтальная полоса прокрутки), ScrollBars.Vertical (вертикальная полоса прокрутки), ScrollBars.Both (горизонтальная и вертикальная полоса прокрутки) .

Примечание. Значение этого свойства допустимо только в том случае, если свойство MultiLine имеет значение true. Когда значение свойства WordWrap равно true,

Горизонтальная полоса прокрутки не будет работать

  • Свойство SelectionLength

Используется для получения или установки количества символов, выбранных в текстовом поле. Может использоваться только в коде, значение 0 означает, что символ не выбран.

  • Свойство SelectionStart

Используется для получения или установки начальной точки выделенного текста в текстовом поле. Может использоваться только в коде, первый символ имеет позицию 0, второй символ имеет позицию 1 и так далее.

  • Свойство SelectedText

Получает или задает строку, указывающую текущий выделенный текст в элементе управления. Можно использовать только в коде.

  • Lines

Это свойство является свойством массива, которое получает или задает текстовую строку в элементе управления текстовым полем. То есть каждая строка в текстовом поле хранится в элементе массива Lines.

  • Modified

Получает или задает значение, указывающее, изменил ли пользователь содержимое элемента управления текстовым полем с момента его создания или содержимое элемента управления было задано в последний раз. Значение true указывает, что оно было изменено, а значение false указывает, что оно не было изменено.

  • Свойство TextLength

Используется для получения длины текста в элементе управления.

  • WordWrap

Он используется, чтобы указать, будет ли элемент управления многострочным текстовым полем автоматически переноситься на начало следующей строки, когда вводимые символы превышают ширину одной строки. Значение равно true, что означает, что он автоматически переносится на начало следующей строки. строки, а значение равно false, что означает, что автоматический перенос на начало следующей строки не выполняется.

  • Свойство PasswordChar

PasswordChar устанавливается на определенный символ для реализации окна пароля.

  • Свойство ShortcutsEnabled

Указывает, следует ли включить сочетания клавиш, указанные для элемента управления.Установка ShortcutsEnabled в значение False может заблокировать как правую клавишу, так и сочетания клавиш Ctrl+V и Ctrl+C.

 

2. Общие методы:

  • Метод AppendText

Чтобы добавить строку в конец текста в поле «Файл», общий формат вызова выглядит следующим образом:

textbox object.AppendText(str) Параметр str — это добавляемая строка.

  • Очистить метод

Удаляет весь текст из элемента управления текстовым полем. Общий формат вызова следующий: Текстовое поле object.Clear() Этот метод не имеет параметров.

  • Метод фокусировки

это установить фокус для текстового поля. Значение true, если фокус был установлен успешно, иначе false. Общий формат вызова такой

Внизу: Текстовое поле object.Focus() Этот метод не имеет параметров.

  • Метод копирования

Копирует текущий выбор в текстовом поле в буфер обмена. Общий формат вызова следующий:

Текстовое поле object.Copy() Этот метод не имеет параметров.

  • Метод резки

Перемещает текущий выбор в текстовом поле в буфер обмена. Общий формат вызова следующий:

Текстовое поле object.Cut() Этот метод не имеет параметров.

  • Метод вставки

Заменяет текущий выбор в текстовом поле содержимым буфера обмена. Общий формат вызова следующий:

Текстовое поле object.Paste() Этот метод не имеет параметров.

  • Метод отмены

Отменяет последнюю операцию редактирования в текстовом поле. Общий формат вызова следующий:

Объект текстового поля Undo() Этот метод не имеет параметров.

  • Метод ClearUndo

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

Состояние программы, вы можете использовать этот метод для предотвращения повторных операций отмены. Общий формат вызова следующий:

Текстовое поле object.ClearUndo() Этот метод не имеет параметров.

  • Выберите метод

Используется для установки выделенного текста в текстовом поле. Общий формат вызова следующий:

Объект текстового поля. Выберите (начало, длина)

Этот метод имеет два параметра, первый параметр start используется для установки позиции первого символа выделенного в данный момент текста в текстовом поле.

Set, вторая длина параметра используется для установки количества выбираемых символов.

  • Метод SelectAll

Используется для выделения всего текста в текстовом поле. Общий формат вызова следующий:

Текстовое поле object.SelectAll() Этот метод не имеет параметров.

3. Общие события

  • Событие GotFocus

Это событие происходит, когда текстовое поле получает фокус.

  • Событие LostFocus

Это событие происходит, когда текстовое поле теряет фокус.

  • Событие TextChanged

Инцидент произошел при изменении значения свойства Text. Независимо от того, изменяется ли взаимодействие, текстовое поле программно изменяет значение свойства Text или пользователь, оно инициирует это событие.

4. Примеры использования

  • Ctrl+C/V/X и другие комбинации клавиш системы экранирования.

В этом примере в основном используются свойство Control, свойство KeyCode и свойство Handled класса KeyEventArgs. Свойство Control класса KeyEventArgs используется для получения значения, указывающего, была ли когда-либо нажата клавиша Ctrl Формат синтаксиса:

public bool Control {get;}

Код:

   private void textBox1_KeyDown(object sender, KeyEventArgs e)

        {

            if (e.Control && e.KeyCode == Keys.V)

            {

                e.Handled = true;

MessageBox.Show("Комбинация клавиш Ctrl+V заблокирована!");

            }

            if (e.Control && e.KeyCode == Keys.X)

            {

                e.Handled = true;

MessageBox.Show("Комбинация клавиш Ctrl+X заблокирована!");

            }

            if (e.Control && e.KeyCode == Keys.C)

            {

                e.Handled = true;

MessageBox.Show("Комбинация клавиш Ctrl+C заблокирована!");

            }

        }

Примечание. Лучший способ заблокировать правую кнопку мыши и сочетания клавиш Ctrl+C и Ctrl+V — установить для параметра ShortcutsEnabled значение False.

  • Отключить правую кнопку мыши

Класс MouseEventArgs в основном предоставляет данные для событий MouseUp, MouseDown и MouseMove, а его свойство Button используется для получения информации о нажатой кнопке мыши. Формат синтаксиса: public MouseButtons Button{get;}

Описание параметра: Одно из значений перечисления MouseButton.

перечислить инструкция
Left Нажмите левую кнопку мыши
None кнопка мыши не нажата
Right Нажмите правую кнопку мыши
Middle Нажмите среднюю кнопку мыши
XButton1 Нажмите первую кнопку XButton
XButton2 Нажмите вторую кнопку XButton

 

private void txtBox_MouseDown(object sender,MouseEventArgs e)

{

       if (e.Buttom==MouseButton.Right)

{

       txtBox.ContextMenu=new ContextMenu();

}

}

  • Цвет отображения сегмента

В этом примере реализации используется только метод Select и свойство SelectColor элемента управления RichTextBox. Метод Select в основном используется для выбора диапазона текста в текстовом поле.Этот метод может быть перегружен.Перегруженная форма, используемая в этом примере, имеет следующий вид: public void Select(int start,int length);

Описание параметра: Первая позиция выделенного в данный момент текста в начальном текстовом поле. Количество символов, выбранных по длине.

Свойство SelectionColor используется для получения или установки цвета текста выделенного в данный момент текста или точки вставки.

[BrowsableAttribute(false)]

public Color Selection{get;set;}

Значение свойства: Цвет, представляющий цвет текущего выделенного текста или текста, введенного после точки повторной вставки.

   private void Form1_Load(object sender, EventArgs e)

        {

            this.richTextBox1.Text = "0123456789522";

This.richTextBox1.Select(0, 3);//Выберите 3 числа денег

            this.richTextBox1.SelectionColor = Color.Red;

            this.richTextBox1.Select(3, 3);

This.richTextBox1.SelectionColor = Color.Blue;//Отображать синим цветом

        }

  • TextBox автоматически выбирает все, когда получает фокус ввода

Идея: Если сам TextBox не получает фокус, после щелчка левой кнопкой мыши, чтобы получить фокус, выберите все.

Если фокус находится на самом текстовом поле, щелчок левой кнопкой мыши больше не будет выполнять выбор всего.

using System;

using System.Collections.Generic;

using System.Windows.Forms;

using System.Globalization;

using System.Drawing;

namespace WindowsFormsApp3

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

            textBox1.Tag = false;

            textBox1.GotFocus += TextBox1_GotFocus;

        }

        private void TextBox1_GotFocus(object sender, EventArgs e)

        {

            textBox1.Tag = true;

TextBox1.SelectAll();//Примечание 1

        }

        private void textBox1_MouseDown(object sender, MouseEventArgs e)

        {

            if (e.Button == MouseButtons.Left && (bool)(textBox1.Tag) == true)

            {

                textBox1.SelectAll();

            }

TextBox1.Tag = false;//Снять все галочки

        }

    }

}

Примечание: хотя событие Mouseup уже выполнило выделение всего, но в позиции «Примечание 1» в коде нам нужно выполнить еще одно выделение в событии GotFocus. Причина в том, что способ получить фокус TextBox , кроме щелчка мышкой, может еще и при переключении фокуса через Tab, Мозеап не запустится, но у нового слова не будет проблемы отмены выделения Мышипа, так что все равно надо выделить их все в событие GetFocus.

  • Можно вводить только цифры и десятичные дроби

   private void textBox1_KeyPress(object sender, KeyPressEventArgs e)

        {

            if (!Char.IsNumber(e.KeyChar) && (!Char.IsPunctuation(e.KeyChar)) && (!Char.IsControl(e.KeyChar)))

            {

                e.Handled = true;

            }

            else if (Char.IsPunctuation(e.KeyChar))

            {

                if (e.KeyChar == '.')

                {

                    if (((TextBox)sender).Text.LastIndexOf('.') != -1)

                    {

                        e.Handled = true;

                    }

                }

                else

                {

                    e.Handled = true;

                }

            }

       }

  • Можно вводить только положительные целые числа, содержащие не более двух цифр.

   private void textBox1_KeyPress(object sender, KeyPressEventArgs e)

        {

            if (!((e.KeyChar > '0' && e.KeyChar <= '9') || e.KeyChar == '\b'))

            {

//если не числовое значение или левая клавиша удаления

e.Handled = true;//Не обрабатывать текущее событие

            }

            else

            {

//Если длина строки текстового поля больше или равна 2

                if (((TextBox)sender).Text.Length >= 2)

{//Если текущий ключ не является левым ключом удаления

                    if (e.KeyChar != '\b')

                    {

e.Handled = true;//Не обрабатывать текущее событие

                    }

                }

                if (((TextBox)sender).SelectedText.Length <= 2 && ((TextBox)sender).SelectedText.Length >= 1)

                { e.Handled = false; }

            }

       }

  • Можно вводить только китайские иероглифы

    private void textBox1_KeyPress(object sender, KeyPressEventArgs e)

        {

            Regex rg = new Regex("^[\u4e00-\u9fa5]$");

            if (!rg.IsMatch(e.KeyChar.ToString()) && e.KeyChar != '\b')

            {

                e.Handled = true;

            }

    }

или

  private void textBox1_KeyPress(object sender, KeyPressEventArgs e)

        {

Regex rg = new Regex("^[\u4e00-\u9fa5\b]$"); //\b — клавиша возврата

            if (!rg.IsMatch(e.KeyChar.ToString()))

            {

                e.Handled = true;

            }

        }

  • Можно вводить только цифры, иероглифы и маскированные китайские иероглифы.

   private void textBox1_KeyPress(object sender, KeyPressEventArgs e)

        {

Regex rg = new Regex("^[\u4e00-\u9fa5\b]$"); //\b — клавиша возврата

            if (!rg.IsMatch(e.KeyChar.ToString()))

            {

                e.Handled = true;

            }

            else

            {

                if (char.IsLetterOrDigit(e.KeyChar) || e.KeyChar == '\b')

                {

                    e.Handled = false;

                }

                else

                {

                    e.Handled = true;

                }

            }

      }

  • написать класс проверки

public   class ValidationRegex

    {

        /// <summary>

/// Строка регулярного выражения.

        /// </summary>

/// регулярное выражение

/// проверяемая строка

        /// <returns></returns>

        private static bool PublicMethod(string pattern, string validteString)

        {

            Regex reg = new Regex(pattern);

            Match match = reg.Match(validteString);

            return match.Success;

        }

        /// <summary>

/// Проверка положительного целого числа

        /// </summary>

        /// <param name="validteString"></param>

        /// <returns></returns>

        public static bool ValidteData(string validteString)

        {

            string pattern = "^[+]?\\d+$";

            return PublicMethod(pattern, validteString);

        }

        /// <summary>

/// Проверяем положительные и отрицательные целые числа

        /// </summary>

        /// <param name="validteString"></param>

        /// <returns></returns>

        public static bool ValidtePlusMinus(string validteString)

        {

            string pattern = "^([-+]?\\d+)(\.\\d+)?$";

            return PublicMethod(pattern, validteString);

        }

        /// <summary>

/// Проверка символов и цифр

        /// </summary>

        /// <param name="validteString"></param>

        /// <returns></returns>

        public static bool VadidateDataLetter(string validteString)

        {

            string pattern = "^[a-zA-Z0-9]+$";

            return PublicMethod(pattern, validteString);

        }

        /// <summary>

/// Проверка китайских символов

        /// </summary>

        /// <param name="validteString"></param>

        /// <returns></returns>

        public static bool ValidateChineseChar(string validteString)

        {

            string pattern = "^[\u4e00-\u9fa5\b]+$";

            return PublicMethod(pattern, validteString);            

        }

        /// <summary>

/// Время проверки, формат: Ч:мм:сс

        /// </summary>

        /// <param name="validteString"></param>

        /// <returns></returns>

        public static bool ValidateTime(string validteString)

        {

            string pattern = "^[0-9]{1,2}:[0-9]{2}(:[0-9]{2})?$";

            return PublicMethod(pattern, validteString);

        }

        /// <summary>

/// Подтвердить стационарный телефон

        /// </summary>

        /// <param name="validteString"></param>

        /// <returns></returns>

        public static bool ValidateTel(string validteString)

        {

            string pattern = "^([0-9]{3,4}-)?[0-9]{7,8}$";

            return PublicMethod(pattern, validteString);

        }

        /// <summary>

/// Подтвердить номер телефона

        /// </summary>

        /// <param name="validteString"></param>

        /// <returns></returns>

        public static bool ValidatePhone(string validteString)

        {

            string pattern = "^(13|15|18|17)[0-9]{9}$";

            return PublicMethod(pattern, validteString);

        }

    }

  • Пользовательский элемент управления TextBox, граница имеет только нижнюю горизонтальную линию.

   public partial class UnderLineTextBox : TextBox

    {

        public UnderLineTextBox()

        {

This.Width = 180;//Устанавливаем ширину пробела.

This.Height = 150;//Устанавливаем высоту элемента управления

This.BorderStyle = BorderStyle.None;//Устанавливаем элемент управления без полей.

        }

public const int WM_PAINT = 0x000F;//Эта переменная представляет рисунок элемента управления TextBox.

public const int WM_CTLCOLOREDIT = 0x0133;//Эта переменная указывает цвет, с которого начинается редактирование элемента управления TextBox

        /// <summary>

/// Описание: Получить сцену всего окна

/// Возвращаемое значение: сцена оконного устройства, если выполнение прошло успешно, 0, если оно не выполнено

/// После использования обязательно отпустите его с помощью ReleaseDC

        /// </summary>

/// Окно, в которое будет копироваться сцена. парам>

        /// <returns></returns>

        [DllImport("user32.dll")]

        public static extern IntPtr GetWindowDC(IntPtr hWnd);

        /// <summary>

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

/// Возвращаемое значение: вернуть 1, если выполнение прошло успешно, иначе вернуть 0;

        ///

        /// </summary>

/// Дескриптор окна, относящийся к контексту устройства, который нужно освободить

/// Дескриптор сцены устройства для освобождения

        /// <returns></returns>

        [DllImport("user32.dll")]

        public static extern int ReleaseDC(IntPtr hWnd,IntPtr hDc);

        protected override void WndProc(ref Message m)

        {

Base.WndProc(ref m);//Обработать сообщение.

switch (m.Msg)//Перехватывать сообщения рисования, относящиеся к элементу управления TextBox.

            {

case WM_CTLCOLOREDIT://При запуске редактирования цвет элемента управления TextBox

                case WM_PAINT:

IntPtr hDc = GetWindowDC(this.Handle);//Получить сцену устройства текущего окна.

If (hDc.ToInt32() != 0)//когда сцена существует

                    {

Использование (Graphics g = Graphics.FromHdc(hDc))//Объявление объекта класса рисования GDI+

                        {

DrawBottomLines(g);//Рисуем нижнюю горизонтальную линию элемента управления TextBox

G.Dispose();//Освобождаем ресурсы, занятые объектами рисования GDI+.

                        }

                    }

m.Result = IntPtr.Zero;//Указываем возвращаемое значение при текущем условии.

ReleaseDC(m.HWnd, hDc);//Освобождаем сцену указанного устройства.

                    break;

            }

        }

        public void DrawBottomLines(Graphics g)

{//Определите объект для рисования линий и кривых и задайте его цвет и ширину.

            Pen p = new Pen(this.BackColor, 2);

g.DrawRectangle(p, 1, 1, this.Width - 1, this.Height - 2);//Рисуем прямоугольник, заданный парой координат, шириной и высотой.

p = new Pen(Color.FromArgb(0, 0, 0), 1);//Определяем объект для рисования и устанавливаем цвет и ширину.

G.DrawLine(p, 0, this.Height - 1, this.Width, this.Height - 1);//Рисуем нижнюю горизонтальную линию элемента управления TextBox.

p.Dispose();//Освобождаем ресурсы, занятые кистью p.

        }

  }