Dzisiaj pokażę wam fajną sztuczke która mam nadzieje przyda się każdemu do budowy wigetów albo ciekawszych form. Nasza forma przy starcie nie będzie się pojawiała na środku ekranu a w fajny sposób będzie wysuwała się z prawej strony ekranu. Tworzymy nowy projekt.
Może na początek pokażę gdzie steruje się pojawianiem formy:
Manual – ręczne ustawianie pozycji okna.
CenterScreen – Forma pojawi się na środku ekranu.
WindowsDefaultLocation – Okno będzie się pojawiało w domyślnej lokalizacji.
WindowsDefaultBounds – Okno otworzy nam się w domyślnym miejscu i o domyślnym rozmiarze.
CenterParent – Wewnątrz Formy macierzystej
W WindowsState ustawiamy stan naszego okna po uruchomieniu
Normal -Nasze okno otworzy się w ustalonym przez nas rozmiarze.
Minimized -Okno otworzy się zminimalizowane.
Maximized – Okno otworzy się zmaksymalizowane.
Dobra to teraz ustawiamy StartPosition na „Manual” a WindowState na „Normal”, przyciskamy dwukrotnie na naszą formę i powinno nas przeniść do naszego codu i utworzyć „Form1_Load”.
Wklejamy następujący kod:
1 |
Me.Size = New System.Drawing.Size(177, 500) |
Size(177, 500) odpowiada za wielokość okna. Jeżeli chcemy aby nasze okno było rozciągnięte na całą wysokość monitora trzeba ustawić Size(177, Screen.PrimaryScreen.WorkingArea.Height)
Teraz zadbamy o to aby nasza forma wysuneła się z prawej strony i zatrzymywała w pozycji 0 dla „x” w lewym górnym rogu.
1 2 3 4 5 6 7 8 9 |
Dim x As Integer Dim y As Integer x = Screen.PrimaryScreen.WorkingArea.Width y = Screen.PrimaryScreen.WorkingArea.Height = Me.Height Do Until x = Screen.PrimaryScreen.WorkingArea.Width - Screen.PrimaryScreen.WorkingArea.Width x = x - 1 Me.Location = New Point(x, y) Loop |
Jak to działa. Deklarujemy soebie dwie zmienne „x” i „y”, ich wielkość będzie zależna od długości naszego ekranu czyli wysokości i szerokości. Czyli jeśli wasza rozdzielczość będzie wynosiła 1366×768 to nasze zmienne będą przyjmowały warości x=1366, y=768. Wyrażenia „Me.Width” i „Me.Height” określają wielkość naszej formy czyli dla Size(177, 500) , Me.Width = 177 a Me.Height = 500
Jak widać okno wysuneło nam się w lewym górnym rogu. Aby wysuneło się w prawym górnym rogu wpisujemy kod
1 2 3 4 5 6 7 8 9 |
Dim x As Integer Dim y As Integer x = Screen.PrimaryScreen.WorkingArea.Width y = Screen.PrimaryScreen.WorkingArea.Height = Me.Height Do Until x = Screen.PrimaryScreen.WorkingArea.Width - Me.Width x = x - 1 Me.Location = New Point(x, y) Loop |
1 |
Lewy dolny róg: |
1 2 3 4 5 6 7 8 9 |
Dim x As Integer Dim y As Integer x = Screen.PrimaryScreen.WorkingArea.Width = Me.Width y = Screen.PrimaryScreen.WorkingArea.Height Do Until y = Screen.PrimaryScreen.WorkingArea.Height - Me.Height y = y - 1 Me.Location = New Point(x, y) Loop |
Prawy dolny róg:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
Dim x As Integer Dim y As Integer x = Screen.PrimaryScreen.WorkingArea.Width y = Screen.PrimaryScreen.WorkingArea.Height Do Until y = Screen.PrimaryScreen.WorkingArea.Height - Me.Height y = y - 1 Loop Do Until x = Screen.PrimaryScreen.WorkingArea.Width - Me.Width x = x - 1 Me.Location = New Point(x, y) Loop |
Kod jest bardzo prosty. Tłumacze jak działa. Jeśli mamy ekran wielkości 1366×768 to dla
1 2 3 4 5 6 7 8 9 10 |
Me.Size = New System.Drawing.Size(177, 500) Dim x As Integer Dim y As Integer x = Screen.PrimaryScreen.WorkingArea.Width y = Screen.PrimaryScreen.WorkingArea.Height = Me.Height Do Until x = Screen.PrimaryScreen.WorkingArea.Width - Me.Width x = x - 1 Me.Location = New Point(x, y) Loop |
Me.Height = 500
Me.Width = 177
Screen.PrimaryScreen.WorkingArea.Heigh = x = 768
Screen.PrimaryScreen.WorkingArea.Width = y = 1366
Używamy tutaj pętli:
Wykonuj aż x będzie się równać 1366-177, na start przyjmowany jest „x = Screen.PrimaryScreen.WorkingArea.Width” czyli 1366, teraz pętla
(1366-177) = 1366 – 1
Ostatecznie kod wygląda tak:
Jeśli ktoś ma jakieś pytania proszę pisać w komętarzach.