Панель GroupBox

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

Приведенная в листинге 14.4 программа запрашивает у пользователя, массив ка­кой длины он хочет создать, и создает целочисленный массив с помощью генера­тора случайных чисел. Пользователь может выбрать диапазон значений элемен­тов: либо [-10; 10], либо [-100; 100]. После создания массива можно вычислить его максимальный элемент и/или количество положительных элементов. Окно приложения показано на рис. 14.9. Для удобства имена (свойство Name) большин­ства компонентов изменены, как указано на рисунке. Переключатели размещены на панели типа GroupBox. Установлено свойство Checked компонента radioButton1, очищены все поля ввода, а для полей maxtextBox и numPosittextBox установлено свойство Readonly (только для чтения).

Рис. 14.9. Окно приложения для вычислений в массиве

ПРИМЕЧАНИЕ

При визуальном проектировании важно размещать компоненты приятным глазу образом. При этом удобно пользоваться командами меню Format, предварительно выделив нужные компоненты, «обводя» их мышью или выделяя мышью при нажа­той клавише Shift или Ctrl. Например, можно выровнять компоненты по левому краю, выделив их и воспользовавшись командой меню Format ► Align ► Lefts.

Все действия в программе выполняются щелчками на двух кнопках, то есть об­рабатываются два события Click.

Листинг 14.4. Вычисления в массиве

using System;

using System.Drawing;

using System.Collections;

using System.ComponentModel;

using System.Windows.Forms;

using System.Data;

namespace WindowsApplication1

{

public class Forml: Form

{

private Label label1;

private GroupBox groupBox1;

private RadioButton radioButton1;

private RadioButton radioButton2;

private TextBox numtextBox;

private CheckBox numPositcheckBox;

private Button createbutton;

private Button calcbutton;

private TextBox maxtextBox;

private TextBox numPosittextBox;

private TextBox arraytextBox;

private CheckBox maxcheckBox;

private Container components = null;

public Form1() { /*...*/ }

protected override void Dispose(bool disposing) {/*...*/}

// Windows Form Designer generated code { /*...*/ }

int[] аrr; // описание массива

static void Main() { /*...*/}

private void createbutton_Click(object sender, EventArgs e)

{

Random rnd = new Random();

int a = -10, b = 10; // диапазон значений элементов

if (radioButton2.Checked)

{

a = -100; b = 100; // корректировка диапазона

}

int n = 0;

try

{

n = int.Parse(numtextBox.Text); // длина массива

}

catch

{

MessageBox.Show("Введите количество элементов!");

numtextBox.Clear(); numtextBox.Focus();

}

arraytextBox.Clear(); // очистка полей ввода

maxtextBox.Clear();

numPosittextBox.Clear();

if (n < 0) n = -n; // если введено отрицательное число

arr = new int[n]; // создание массива

for (int i = 0; i < n; ++i)

{

arr[i] = rnd.Next(a.b); // задание элемента массива

arraytextBox.Text += " " + arr[i]; // вывод массива

}

}

private void calcbutton_Click(object sender, EventArgs e)

{

int max = arr[0];

int numPosit = 0;

for (int i = 0; i < arr.Length; ++i)

{

if (arr[i] > max) max - arr[i]; // поиск максимума

if (arr[i] > 0) ++numPosit; // количество положительных

}

if (maxcheckBox.Checked)

maxtextBox.Text = max.ToString();

else

maxtextBox.Text = "";

if (numPositcheckBox.Checked)

numPosittextBox.Text = numPosit.ToString();

else

numPosittextBox.Text = "";

}

}

}


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: