Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Visual Basic: усовершенствуем программу просмотра изображений (VB, Image, LoadPicture).




На прошлом уроке мы написали простейший просмотрщик картинок. Сегодня мы доработаем его таким образом, что бы он мог автоматически уменьшать большие картинки с сохранением пропорции. Для этого наш компонент PictureBox уменьшим и сделаем невидимым (свойство Visible установим в false)*:

Кинем на форму компонент Image, который отличается от PictureBox тем, что в отличии от последнего, может масштабировать картинку, а PictureBox размер картинки сохраняет, но может менять собственные размеры. Присвоим ей имя Img*.

Теперь перепишем обработчик события Click списка файлов*:

Private Sub FileList_Click() Img.Width = 6500 Pic.Picture = LoadPicture(DirBox.Path + "\" + FileList.FileName) ImWidth = ScaleX(Pic.Picture.Width, vbHimetric, vbPixels) imHeight = ScaleY(Pic.Picture.Height, vbHimetric, vbPixels) If ImWidth > imHeight Then Koeff = ImWidth / Img.Width Else Koeff = imHeight / Img.Height End If WidthNew = ImWidth / Koeff HeighNew = imHeight / Koeff Img.Width = WidthNew Img.Height = HeighNew Img.Picture = Pic.Picture End Sub

 

Сначала мы устанавливаем ширину картинки:

Img.Width = 6500

Так как в результате масштабирования изображения она может сбиться. Затем загружаем картинку:

Pic.Picture = LoadPicture(DirBox.Path + "\" + FileList.FileName)

для нее то мы и оставили старый компонент PictureBox. Пересчитываем длину и ширину с учетом масштаба:

 

ImWidth = ScaleX(Pic.Picture.Width, vbHimetric, vbPixels) imHeight = ScaleY(Pic.Picture.Height, vbHimetric, vbPixels)

 

В зависимости от того, что больше, длина или ширина вычисляем коэффициент пересчета размера картинки:

If ImWidth > imHeight Then Koeff = ImWidth / Img.Width Else Koeff = imHeight / Img.Height End If

 

Применяем новые размеры и отображаем картинку:

 

WidthNew = ImWidth / Koeff HeighNew = imHeight / Koeff Img.Width = WidthNew Img.Height = HeighNew Img.Picture = Pic.Picture

 

Теперь запустим программу и убедимся, что она правильно работает:

 

 

 

Visual Basic (VB): Компоненты ComboBox и ListBox (AddItem, ListIndex)

Продолжим знакомство с компонентами Visaul Basic. Рассмотрим выпадающий список ComboBox*:

 

 

Кинем его на форму и назовем СomboBox. Напишем обработчик события загрузки формы, что бы вызвать его шаблон, просто кликнем два раза мышкой по форме:

Private Sub Form_Load() ComboBox.AddItem ("Таня") ComboBox.AddItem ("Маша") ComboBox.AddItem ("Катя") ComboBox.AddItem ("Света") End Sub

 

Затем кинем на форму метку, назовем ее Label и напишем для ComboBox обработчики событий Change и Click:

 

Private Sub ComboBox_Change() Label.Caption = ComboBox.Text End Sub Private Sub ComboBox_Click() Label.Caption = ComboBox.Text End Sub

 

Запустим наш тестовый пример:

 

 

Как видим, при наборе текста вручную или выборе из выпадающего списка у нас текст метки принимает соответствующее значение:

 

 

Теперь перейдем к ListBox*:

 

Это у нас обычный, не выпадающий список. Для иллюстрации его работы напишем простейший тестовый приме. Начнем новый проект. Кинем на форму сам ListBox,назовем его lbItems, кинем метку Label (имя lbItem) а так же TextBox (имя edItem). Так же добавим кнопочку и назовем ее cmAdd*:

 

 

Напишем обработчик клика на кнопочку:

Private Sub cmAdd_Click() lbItems.AddItem (edItem.Text) End Sub

 

Теперь напишем обработчик клика на список (для открытия шаблона просто щелкните мышкой по компоненту два раза):

 

Private Sub lbItems_Click() lbItem.Caption = lbItems.List(lbItems.ListIndex) End Sub

 

Теперь запустим наш пример:

 

 

Visual Basic (VB): VB. NET. Знакомство с Visual Studio 2010

Ранее мы изучали Visual Basic на Visual Studio 6. Сейщас же перейдем на более продвинутую технологию, на Visual Studio 2010. И так, заходим в VS 2010 b выбираем в меню "Файл" -> "Создать" -> "Проект":

 

 

Выбираем Visual Basic, тип приложения "Приложение Windows Forms" из группы Windows:

 

 

Точно так же как и на уроке 1, попробуем написать простое VB.NET приложение. Кидаем на форму кнопочку:

 

 

 

Создаем обработчик события нажатия на кнопочку, просто кликнув на нее два раза:

 

 

Обратите внимание на отличие от прошлой версии VS, которую мы рассматривали на уроке 1. Здесь у нас указаны еще и аргументы. В частности sender - объект, сгенерировавший событие и e - аргументы события (всякая информация, до которой мы еще доберемся).

К счастью, многие старые команды остались неизменными, например, MsgBox. Вставляем вызов этой команды в созданный обработчик:

 

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click MsgBox("Hello, World!") End Sub

 

Эффект будет тот же самый, при нажатии на кнопочку программа выдаст приветствие:

 

 

На прошлых уроках мы изучали различные компоненты VB: флажки, радио кнопки, поля ввода, списки, картинки, метки. Давайте профрим, так же с ними работать в новой версии VB, или нет. Кинем на форму еще два поля ввода, флажок и метку, как в уроке 3:

 

 

Если мы тупо скопируем код урока 3, в обработчик нажатия на кнопочку, то компилятор выдаст ошибку. Дело в том, что VB в целях унификации несколько приблизился к C#, так что у меток нет больше свойства Caption, есть Text. Так же и у флажка нету свойства Value, есть Checked. Так что теперь обработчик должен выглядеть вот так:

 

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnResult.Click If chbAlertSummaOfNumber.Checked Then MsgBox(Val(Number1.Text) + Val(Number2.Text)) Else lbResult.Text = Val(Number1.Text) + Val(Number2.Text) End If End Sub

 

Теперь проверим работу программы:

 

 

 

А сейчас изучим еще один компонент VB - список с пометками:

 

 

Для кнопочки "Добавить" сделаем вот такой обработчик нажатия:

Private Sub lbAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lbAdd.Click lbTest.Items.Add(tbItem.Text, False) End Sub

 

а для кнопочки "Показать" вот такой:

Private Sub btnShow_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnShow.Click Dim s As String Dim s1 As String s1 = "" s = "" For Each item In lbTest.CheckedItems s += s1 s += item.ToString() s1 = ", " Next MsgBox(s) End Sub

 

Обратите внимание, что поле ввода у нас названо tbItem, а список с пометками lbTest. Напомню, что имя мы назначаем в свойствах:

 

 

 

Теперь проверим, мы добавляем в список с пометками несколько элементом, а по кнопочке "Показать" программа должна нам выдать перечисленные через запятую отмеченные элементы:

 

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...