Руководство по использованию элемента управления TextBox в C#

Автор: Сэм Аллен (Sam Allen)

Требуется предоставить пользователям способ вводить буквы в программу Windows Forms на основе языка программирования C#. В системе Windows Forms имеется полезный элемент управления TextBox, который включается в установки .NET, и начать с ним работу довольно просто. Здесь мы продемонстрируем, как можно приступить к использованию элемента управления TextBox в программе Windows Forms с помощью C# и конструктора Visual Studio, рассмотрев несколько распространенных ситуаций, а затем покажем, как можно получить доступ к его тексту в коде C# и сохранить его в файл.

Общие сведения об элементе управления TextBox

В первую очередь мы изложим некоторые основные сведения об элементе управления TextBox и о программах Windows Forms, которые принимают ввод текста от пользователей. Платформа .NET Framework обеспечивает чтение ключей и отображение этого текста на экране для пользователей. Однако она не делает ничего для принятия текста. Необходимо будет получить доступ к тексту из элемента управления TextBox с помощью настраиваемых логических правил. При программировании графического пользовательского интерфейса будут обрабатываться настраиваемые события, предоставляемые TextBox, чтобы определить, когда следует выполнять логические правила.

Свойство Text элемента управления TextBox. Элемент управления TextBox в Windows Forms предоставляет общее свойство экземпляра с именем Text, которое возвращает строку, представляющую точные символы, содержащиеся в TextBox, в любое время. Доступ к свойству Text можно получить в любое время, а отслеживать изменения этого свойства можно с помощью события TextChanged.

Добавление важных обработчиков событий

Отметим, что в интегрированной среде разработки Visual Studio символ молнии обозначает обработчики событий. Программы Windows Forms в основном строятся на основе событий, что означает, что можно использовать значок молнии в диалоговом окне свойств для добавления наиболее важных обработчиков событий. Эта статья построена на основе Visual Studio 2008.

Некоторые наиболее часто используемые события. Наиболее полезные обработчики событий в элементе управления TextBox перечислены в окне свойств в Visual Studio. Если не удается найти окно свойств, последовательно выберите в меню пункты "View" ("Вид") и "Properties Window" ("Окно свойств"). Увидев обработчик событий, который требуется добавить, дважды щелкните в этой строке окна свойств. Если требуется присоединить обработчик событий к методу, который уже существует в программе, используйте раскрывающееся меню в окне свойств. Сигнатуры метода должны быть совместимы.

Использование события TextChanged

В этой части руководства будет рассматриваться использование события TextChanged для модификации другой части программы, когда пользователь вводит текст в TextBox. Следует отметить, что событие TextChanged активируется только в том случае, когда текст изменяется на другой, а не на тот же самый по каким-либо причинам. Эта программа назначает в качестве текста заголовка базового окна текст, введенный пользователем в TextBox. Таким образом заголовок базового окна отражает ввод пользователя. Панель задач Windows также будет показывать этот текст.

Программа, которая использует TextBox и событие TextChanged (C#)

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 WindowsFormsApplication20

{

    public partial class Form1 : Form

    {

public Form1()

        {

InitializeComponent();

        }

 

private void textBox1_TextChanged(object sender, EventArgs e)

        {

//

// This changes the main window text when you type into the TextBox.

//

this.Text = textBox1.Text;

        }

    }

}

Добавление события TextChanged. Чтобы добавить обработчик события TextChanged в TextBox, дважды щелкните TextBox в конструкторе Windows Forms. Можно также добавить этот обработчик события вручную, введя код C# в конструктор Form1(). Кроме того, для создания или назначения обработчика события TextChanged можно использовать строку TextChanged в окне свойств.

Обнаружение событий нажатия клавиш

Здесь мы рассмотрим, как можно читать события нажатия клавиш в элементе управления TextBox в Windows Forms с помощью языка C#. Система Windows Forms предоставляет несколько событий на основе нажатия клавиш, и в данном руководстве используется обработчик события KeyDown, который вызывается перед тем, как значение клавиши отобразится в TextBox. Так же в обработчике события KeyDown можно отменять событие нажатия клавиши, хотя это не демонстрируется. При нажатии клавиши ВВОД программа будет отображать оповещение, а при нажатии клавиши Escape отображать другое предупреждение.

Класс Windows Forms, использующий KeyDown в TextBox (C#)

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 WindowsFormsApplication20

{

public partial class Form1 : Form

    {

public Form1()

        {

InitializeComponent();

        }

 

private void textBox1_KeyDown(object sender, KeyEventArgs e)

        {

//

// Detect the KeyEventArg's key enumerated constant.

            //

if (e.KeyCode == Keys.Enter)

{

MessageBox.Show("You pressed enter! Good job!");

}

else if (e.KeyCode == Keys.Escape)

{

MessageBox.Show("You pressed escape! What's wrong?");

}

        }

    }

}

Перечисление Keys. Платформа Windows Forms предоставляет перечисление Keys, которое можно использовать для проверки отдельных значений клавиш. Один из простейших способов проверки клавиш — ввести "Keys" и нажать точку, а затем использовать функцию IntelliSense в Visual Studio для просмотра всех возможных значений клавиш. Поскольку значение KeyCode относится к типу перечисления Keys, его также можно использовать как переключающее вычисляемое выражение для убыстрения кода.

Отображение сообщений и диалоговых окон. Приведенный выше текст класса демонстрирует метод MessageBox.Show, являющийся самым простым способом отображения диалогового окна в системе Windows Forms. На этом сайте имеется руководство по методу MessageBox.Show, которое было представлено на официальном сайте Microsoft Windows Forms.

Посетите windowsclient.net.

См. примеры MessageBox.Show в Windows Forms.

Использование многострочного текстового поля

Здесь мы рассмотрим, как можно использовать логическое свойство Multiline в элементе управления TextBox в Windows Forms для создания области ввода длинного текста. Для ресурсоемких приложений элемент управления TextBox может оказаться недостаточным, и существуют проблемы производительности с очень большими объемами текста, но для коротких многострочных полей ввода это удобно. В следующих частях данного руководства будет показано, как сохранять содержимое многострочного текстового поля в файл на диске.

Использование TextBox с кнопкой. На приведенном здесь снимке экрана показан элемент управления TextBox, измененный в конструкторе таким образом, что его свойство Multiline имеет значение true. Кроме того, в форме имеется элемент управления "Кнопка" с текстом "Save". В следующем разделе будет показано, как использовать эту кнопку Save для записи текста в файл.

Сохранение содержимого TextBox в файлах

Здесь мы покажем, как можно заставить элемент управления TextBox делать нечто полезное в реальной программе: записывать файл на диск. В сущности это примитивный текстовый процессор, но пока не следует использовать его для записи чего-либо важного. После добавления многострочного элемента управления TextBox можно добавить кнопку, а затем дважды щелкнуть эту кнопку в конструкторе, чтобы добавить обработчик событий button1_Click. В этом обработчике событий можно получить доступ к свойству Text элемента управления TextBox и записать его на жесткий диск.

Программа Windows Forms, записывающая текст из TextBox (C#)

using System;

using System.IO;

using System.Windows.Forms;

 

namespace WindowsFormsApplication20

{

public partial class Form1 : Form

    {

public Form1()

        {

InitializeComponent();

        }

 

private void button1_Click(object sender, EventArgs e)

        {

//

// This is the button labeled "Save" in the program.

//

File.WriteAllText("C:\\demo.txt", textBox1.Text);

        }

    }

}

Возможный записанный файл (соответствует снимку экрана)

This is some text

written for the textbox tutorial

in the site dotnetperls.com

Руководство по записи текстовых файлов. В примере метода содержится вызов метода File.WriteAllText из пространства имен System.IO в библиотеке базовых классов платформы .NET Framework. Этот метод будет принимать строковые данные, на которые указывает строковая ссылка, возвращаемая свойством Text, и затем в действительности записывать их на физический жесткий диск компьютера. После выполнения этой программы можно открыть файл "demo.txt", и в нем будет текст, введенный в программу.

См. статью "Обработка файла".

Дополнительные статьи 

В этом разделе приведены некоторые дополнительные сведения по элементу управления TextBox в Windows Forms, которые можно найти на этом веб-сайте. В большинстве программ Windows Forms элементы управления и обработчики событий взаимно связаны, поэтому полезно изучить как можно больше элементов управления. Кроме того, часто существует несколько способов выполнения задачи с помощью обработчиков событий, и некоторые способы лучше других. Эти статьи помогут принять решение.

См. описание метода TextBox.AppendText.

См. описание шрифтов Segoe UI и Tahoma в Windows Forms.

См. описание использования подсказок в Windows Forms .NET.

Свойства элемента управления TextBox

В этом разделе приведены некоторые наиболее важные свойства элемента управления TextBox в Windows Forms. В языке программирования C# свойства — это логически общедоступные переменные, которые обычно можно получать или устанавливать во внешнем коде. Свойства могут содержать исполняемый код (пока не написанный).

СобытияTextBox. В этом разделе приведены некоторые наиболее полезные события в элементе управления TextBox в Windows Forms. События рассматриваются как свойства в языке программирования C#, но содержат методы доступа add и remove, получающие типы делегатов, которые должны соответствовать необходимой сигнатуре делегата. (Пока не доступно.)

Выводы

В этом руководстве рассматривалось использование элемента управления TextBox в системе Windows Forms, предоставляемого как часть платформы .NET Framework, в языке программирования C#. Этот элемент управления предоставляет пользователю высокоэффективный способ ввода текста с помощью клавиатуры или другого устройства ввода и получения этого текста непосредственно в программе C# в управляемом коде. В элементе управления TextBox имеется свойство Text, с помощью которого можно легко получить доступ к тексту, введенному в программу. Было показано, как можно добавлять обработчики событий, использовать событие TextChanged, обнаруживать нажатия конкретных клавиш в TextBox, использовать многострочный TextBox и записывать содержимое TextBox в файл.

См. статью, посвященную содержимому Windows Forms.