Программирование
Веб программирование

Строка состояния. Объект StatusBar в vb.net

 
 

Практически у любой программы есть строка состояния, в ней написанна определенная информация для пользователя, которая помогает ему пользоваться программой. StatusBar имеет следующие свойства:

Panels - Свойство нужно для создания панелей, т.е. свойство делит Status Bar на несколько секций. В окне откроется окошко, в нем нажми на кнопку Add. Создаётся панель, которая обладает следдующими свойствами:

       Aligment - Если значение свойство равно Left то текст в панели будет слево, если Center - то в центре, если Right - то справо.
       AutoSize - Если значение этого свойства равно None то указанные размеры панели изменяться автоматически не будут, если равно Spring то размеры панели будут изменятся автоматически, взависимости от изменения размера StatusBar(а размеры StatusBar изменяются в основном в зависимости от размеров формы), если равно Contents то размеры панели изменяются взависимости от текста в панели
       BorderStyle - Тип рамки
       Icon - Значение этого свойства вставляет в панель иконку
       Text - Текст который будет в панели
       TopTipText - Значение этого своства - всплыхивающая подсказка, которая появляется при наведении мыши на панель
       Width - Ширина панели
       Name - Имя панели

ShowPanels - Если значение этого свойства равно True, то панели в строке состояния будут видимы, если False то не видимы:

Все на свойствах закончим, я не стал писать про все свойства, т.к. остальными свойствами ты пользоваться умеешь.

Для того чтобы понять как пользоваться строкой состояния, на форме размести объект StatusBar, и 4 кнопки. В StatusBar`e создай три панели, с именами SP1, SP2, SP3. У них измени свойство Width(у SP1=200, у SP2 и SP3 = 100). У SP1 свойство AutoSize = Spring:

Код:

Private Sub Button1_MouseLeave(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.MouseLeave, Button2.MouseLeave, Button3.MouseLeave, Button4.MouseLeave ' При отводе мыши с объектов Button1, Button2, Button3, Button4 меняем текст в первой панели:
SP1.Text = "Мышь на форме"
End Sub

Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseMove ' При перемещении мыши по форме, в третьей панели показываем координаты курсора:
SP3.Text = e.X & "x" & e.Y
End Sub

Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load ' Здесь все понятно:
SP1.Text = "Мышь на форме"
SP2.Text = "Часть 7"
End Sub

Private Sub Button1_MouseEnter(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.MouseEnter, Button2.MouseEnter, Button3.MouseEnter, Button4.MouseEnter ' При наводе мыши на объекты Button1, Button2, Button3, Button4 меняем текст в первой панели:
SP1.Text = "Мышь на кнопке"
End Sub

Исходник


Есть вопросы? Спроси на нашем форуме!!
Alex [28.04.2010 14:23]

Прочитал весь материал,но так и не понял как сделать так что бы программу можно было скрывать из трея (хайд) по нажатию на кнопку,а вызывать её назад по нажатию определённых клавиш..

CoewseesMon [05.02.2011 00:55]

почему бы и нет :)

Начинающий [28.05.2011 12:52]

Как? Как использовать BitBit в Visual Basic .Net??? Вроде даже получилось... Но если сделать PictureBox1.Visible=false, а затем вызвать BitBit, то ничего отображаться не бутет!!! Кто знает помогите!!! Заранее огромное спасибо!!!

Начинающий [28.05.2011 12:55]

Public Class Form1
' Private Declare Function CreateCompatibleDC Lib "gdi32.dll" (ByVal hdc As Int32) As Int32
Private Declare Function BitBlt Lib "gdi32.dll" (ByVal hDestDC As Int32, ByVal x As Int32, ByVal y As Int32, ByVal nWidth As Int32, ByVal nHeight As Int32, ByVal hSrcDC As Int32, ByVal xSrc As Int32, ByVal ySrc As Int32, ByVal dwRop As Int32) As Int32
Private Declare Function GetDC Lib "user32.dll" (ByVal hwnd As Int32) As Int32
Public Enum dwRop
vbSrcPaint = &HEE0086 '15597702
vbSrcInvert = &H660046 '6684742
vbSrcErase = &H440328 '4457256
vbSrcCopy = &HCC0020 '13369376
vbSrcAnd = &H8800C6 '8913094
vbPatPaint = &HFB0A09 '16452105
vbPatInvert = &H5A0049 '5898313
vbPatCopy = &HF00021 '15728673
vbNotSrcErase = &H1100A6 '1114278
vbNotSrcCopy = &H330008 '3342344
vbMergePaint = &HBB0226 '12255782
vbMergeCopy = &HC000CA '12583114
vbDstInvert = &H550009 '5570569
End Enum

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
PictureBox1.Visible = False
BitBlt(GetDC(Me.Handle), 0, 0, 90, 90, GetDC(PictureBox1.Handle), 0, 0, dwRop.vbSrcCopy)
End Sub
End Class

Пожалуйса, кто нибудь помогите!!!

Начинающий [28.05.2011 13:00]

Неужели никак не нельзя?
BitBit в VB.NET!!!
Умоляю!
ПОМОГИТЕ!!!

Юра [01.12.2011 14:38]

чем меня не прикалывает VB 2010 тем что для него требуется net framework. Я лучше позоморачиваюсь чем перейду на VB 2010

Диагональ [01.12.2011 14:51]

net framework входит во все более-менее новые виндовсы. Специалисты со знанием net framework сейчас куда больше ценяться, чем специалисты vb6.

Чем он тебе не понравился?

Александр [02.12.2012 09:57]

А где находится StatusBar в vb.net 10?

pjp07190 [13.02.2013 15:48]

Есть аналогичный объект StatusStrip. Его настройка аналогична
StatusBar.



Оставлять комментарии можно только зарегистрированным




Предупреждение: Вся информация представлена исключительно в образовательных целях.
Ни авторы, ни администрация не несут ответственности в случае ее использования в противозаконных целях.