Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
задания_lab_VB-net.doc
Скачиваний:
0
Добавлен:
09.11.2019
Размер:
139.78 Кб
Скачать

Питання

Чим принципово відрязняеться архітектура застосувать першої та другої лабораторної роботи.

Навіщо оператор DoEvents. Який програмний код виконується після DoEvents. Від чого це залежить.

Які класи містять кодування потрібне для виконання цієї роботи.

Які елементи керування завдання можуть отримувати фокус які ні.

З яких структурних елементів складається проект.

З чого починається виконання програми

Які властивості яких елементів керування отримали значення під час проєктування, які під час виконання програми.

Як зміниться робота програми якщо закоментувати оператори pr = 0

Завдання 3

В додатку 2 приведені таблиці, кожна з яких відповідає одному варіанту завдання. Зірочки в таблицях поміщені в поля, значення яких необхідно обчислити програмно.

В програмі необхідно відобразити на формі образ таблиці з додатку 2, реалізувати обчислення, задані таблицею. Повинна бути передбачений можливість зміни початкових даних, представлених таблицями з контролем правильності заповнення інформації (неприпустимість введення букв в числові поля). Зовнішній образ таблиці повинен бути промоделирован за допомогою списків прокрутки – кожний стовпець таблиці - один список прокрутки.

Для введення і редагування даних в списках може бути використаний наступна технологія.

1 приклад

Private Sub List1_Click()

Text1.Visible = True

Text1.ZOrder (0)

Text1.SetFocus

End Sub

Private Sub List1_MouseDown(Button As Integer, Shift As Integer, X As Single, У As Single)

Dim d As Single

Me.ScaleMode = 1

d = Me.TextHeight("a")

Text1.Width = List1.Width

Text1.Height = d

Text1.Left = List1.Left

Text1.Top = List1.Top + У - d / 2

Text1.Text = List1.List(List1.ListIndex)

End Sub

Private Sub Text1_Change()

List1.List(List1.ListIndex) = Text1.Text

End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then

List1.List(List1.ListIndex) = Text1.Text

Text1.Visible = False

End If

End Sub

Private Sub Text1_LostFocus()

Text1.Visible = False

End Sub

В цьому випадку для введення даних використовується TextBox. Цей елемент розміщений на формі і робиться видимим в мить, коли здійснюється клацання по деякому елементу списку. Позиція елемента поєднується з позицією елемента списку. Відредагована в TextBox інформація займає місце елемента списку.

Забезпечити горизонтальне і вертикальне масштабування елементів управління при зміні розмірів форми. Горизонтальне масштабування забезпечує додавання наступних кодів в модуль форми.

2 Приклад

Public zwith As Single

Dim zhi As Single

Private Sub Form_Load()

zwith = Me.Width

zhi = Me.Height

End Sub

Private Sub Form_Resize()

ratiow = zwith / Width

ratioh = zhi / Height

zhi = Height

zwith = Width

Dim а As Control

On Error Resume Next

For Each а In Controls

а.Left = а.Left / ratiow

а.Width = а.Width / ratiow

а.Top = а.Top / ratioh

а.Height = а.Height / ratioh

а.X1 = а.X1 / ratiow

а.X2 = а.X2 / ratiow

а.Y1 = а.Y1 / ratioh

а.Y2 = а.Y2 / ratioh

Next

End Sub

Варіанти кодування для NET

Альтернативна технологія на C#

private void list_mousedoun(object sender, MouseEventArgs e)

{

float d;

d = listBox1.ItemHeight;

textBox1.Width = listBox1.Width;

textBox1.Height = (int)d;

textBox1.Left = listBox1.Left;

textBox1.Top = (int)(listBox1.Top + e.Y - d / 2);

textBox1.Text = listBox1.Text;

}

private void list_clic(object sender, EventArgs e)

{

//Text1.Visible = True

//Text1.ZOrder (0)

//Text1.SetFocus

textBox1.BringToFront();

textBox1.Visible = true;

textBox1.Focus();

}

private void kp1(object sender, KeyPressEventArgs e)

{

if (e.KeyChar == (char)13)

{

textBox1.Visible = false;

int a = listBox1.SelectedIndex;

listBox1.Items.RemoveAt(a);

listBox1.Items.Insert(a, textBox1.Text);

}

}