Базовые компоненты. Компонент Button

   
На этом шаге мы рассмотрим использование этого компонента.

   
Компонент Button (рисунок 1) представляет собой командную кнопку. Свойства компонента приведены в таблице 1.


Рис.1. Компонент Button

Таблица 1. Свойства компонента Button

СвойствоОписание
NameИмя компонента. Используется в программе для доступа к свойствам компонента
TextТекст (надпись) на кнопке
TextAlignПоложение текста (надписи) на кнопке. Надпись может располагаться в центре (MiddleCenter), быть прижата к левой (MiddleLeft)
или правой (MiddleRight) границе. Можно задать и другие способы размещения надписи (TopLeft, TopCenter, TopRight, BottomLeft, BottomCenter, BottomRight)
FlatStyleКнопка может быть стандартной (Standard), плоской (Flat) или "всплывающей" (Popup)
LocationПоложение кнопки на поверхности формы. Уточняющее свойство X определяет расстояние от левой границы кнопки до левой границы
формы, уточняющее свойство Y - от верхней границы кнопки до верхней границы клиентской области формы (нижней границы заголовка)
SizeРазмер кнопки
FontШрифт, используемый для отображения текста на кнопке
ForeColorЦвет текста, отображаемого на кнопке
EnabledПризнак доступности кнопки. Кнопка доступна, если значение свойства равно True, и недоступна (например, событие Click в результате щелчка на кнопке не возникает), если значение свойства равно False
VisibleПозволяет скрыть кнопку (False) или сделать ее видимой (True)
CursorВид указателя мыши при позиционировании указателя на кнопке
ImageКартинка на поверхности формы. Рекомендуется использовать gif-файл, в котором определен прозрачный цвет
ImageAlignПоложение картинки на кнопке. Картинка может располагаться в центре (MiddleCenter), быть прижата к левой (MiddleLeft) или
правой (MiddleRight) границе. Можно задать и другие способы размещения картинки на кнопке (TopLeft, TopCenter, TopRight, BottomLeft, BottomCenter, BottomRight)
ImageListНабор картинок, используемых для обозначения различных состояний кнопки. Представляет собой объект типа ImageList. Чтобы задать
значение свойства, в форму приложения надо добавить компонент ImageList
ImageIndexНомер (индекс) картинки из набора ImageList, которая отображается на кнопке
ToolTipПодсказка, появляющаяся рядом с указателем мыши при позиционировании его на кнопке. Чтобы свойство было доступно, в форму
приложения надо добавить компонент ToolTip

   
Следующая программа (ее форма приведена на рисунке 2, а текст — в листинге ниже) демонстрирует использование компонента Button.


Рис.2. Во время работы программы кнопка OK будет доступна только в том случае, если в поле TextBox пользователь введет хотя бы одну цифру

   
Программа пересчитывает расстояние из милей в километры. Расчет и отображение результата выполняет процедура обработки события Click.
Следует обратить внимание, что кнопка OK доступна только в том случае, если в поле редактирования находятся данные (хотя бы одна цифра).
Управляет доступностью кнопки процедура обработки события TextChanged компонента TextBox. Процедура контролирует количество
символов, которое находится в поле редактирования, и, если в поле нет ни одной цифры, присваивает значение False свойству Enabled и, тем
самым, делает кнопку недоступной. В процессе создания формы свойству Enabled кнопки надо присвоить значение False.

   
Текст приложения:

// содержимое поля редактирования изменилось
private: System::Void textBox1_TextChanged(System::Object^  sender, 
	System::EventArgs^  e) {
	// Если в поле texBox1 нет данных, 
	// сделать кнопку button1 недоступной 
	if (textBox1->Text->Length == 0 ) 
		button1->Enabled = false; 
	else 
	button1->Enabled = true;
}
	
private: System::Void textBox1_KeyPress(System::Object^  sender, 
	System::Windows::Forms::KeyPressEventArgs^  e) {
	// Правильными символами считаются цифры, 
	// запятая, <Enter> и <Backspace>. 
	// Будем считать правильным символом 
	// также точку, но заменим ее запятой. 
	// Остальные символы запрещены. 
	// Чтобы запрещенный символ не отображался 
	// в поле редактирования, присвоим 
	// значение true свойству Handled параметра e 
	if ((e->KeyChar >= '0') && (e->KeyChar <= '9')) 
	{ 
		// цифра 
		return; 
	}
	if (e->KeyChar == '.') 
	{ 
		// точку заменим запятой 
		e->KeyChar = ','; 
	} 
	if (e->KeyChar == ',') 
	{ 
		if (textBox1->Text->IndexOf(',') != -1) 
		{ 
			// запятая уже есть в поле редактирования 
			e->Handled = true; 
		} 
		return; 
	} 
	if ( Char::IsControl(e->KeyChar)) 
	{ 
		// <Enter>, <Backspace>, <Esc> 
		if (e->KeyChar == (char) Keys::Enter) 
			// Нажата клавиша <Enter>. 
			// установить "фокус" на кнопку OK 
			button1->Focus(); 
		return; 
	} 
	// остальные символы запрещены 
	e->Handled = true;
 }

private: System::Void button1_Click(System::Object^  sender, 
	System::EventArgs^  e) {
	double mile; // расстояние в милях 
	double km; // расстояние в километрах 
	mile = Convert::ToDouble(textBox1->Text); 
	km = mile * 1.609344; 
	label2->Text = mile.ToString("n") + " miles - " + 
	km.ToString("n") + " км."; 
 }

Архив проекта можно взять здесь.

   
На кнопке может находиться картинка. Существуют два способа поместить картинку на кнопку. Первый — присвоить значение свойству Image.
Второй — добавить в форму компонент ImageList, выполнить его настройку, установить связь между компонентами Button и
ImageList и затем, присвоив значение свойству ImageIndex компонента Button, задать картинку для кнопки. Первый способ
технически проще, но при его использовании нельзя задать прозрачный цвет, поэтому картинка должна быть прямоугольной или цвет фона изображения
должен совпадать с цветом кнопки. При использовании второго способа есть возможность задать прозрачный цвет.

   
На следующем шаге мы рассмотрим компонент CheckBox.



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий