Составить программу, в которой реализовать оконное приложение, содержащее
элемент CheckedListBox и две кнопки. Активация первой должна приводить к
генерации списка целых чисел в CheckedListBox. Активация второй должна
производить подсчет суммы всех отмеченных галочками элементов списка. Сумму
выводить в отдельную форму (в немодальное диалоговое окно).
Метод генерации массива целых чисел для добавления их в список реализовать
в отдельном классе методов.
Как добавить в проект
еще одну форму:
Solution_Explorer -> (правая кнопка) Имя_Проекта -> Add ->Windows Form -> (Name)Имя_формы.cs -> Add
Настройки свойств элементов:
CheckedListBox.checkedOnClick=true;
Результат проектирования формы 1:
namespace WinProg_3_3 {
public partial class Form1 : Form {
public Form2 newForm; // Cсылка на экземпляр формы 2
public Form1() {
InitializeComponent(
);
}
private void button1_Click(object sender, EventArgs
e) {
checkedListBox1.Items.Clear();
checkedListBox1.Items.AddRange(Methods.arrayGenerate(10));
}
private void button2_Click(object sender, EventArgs
e) {
int sum = 0; // Summ of
checked items
// Using foreach to review collection
foreach (object itemChecked in checkedListBox1.CheckedItems)
sum += int.Parse(itemChecked.ToString());
newForm = new Form2(sum); // Создать экземпляр формы 2
//newForm.Show(); // Показать форму
newForm.ShowDialog(); // Показать форму
в модальном режиме
}
}
}
Результат проектирования формы 2:
namespace WinProg_3_3 {
public partial class Form2 : Form {
public Form2(int res)
{ // новый конструктор
InitializeComponent( );
label1.Text += res.ToString();
}
}
}
Объявление класса методов:
namespace WinProg_3_3 {
class Methods {
// This method returns an integer
array with values between 0 and 1000
public static string[] arrayGenerate(int
arrayLength) {
Random rnd = new Random();
string[] arr = new string[arrayLength]; //
array
for (int i = 0; i
< arrayLength; arr[i] =
rnd.Next(0, 1000).ToString(), i++) ;
return arr;
}
}
}
Список использованных свойств и методов: CheckedListBox, Items, CheckedItems,
Sorted, CheckedItems, CheckedItems.Count