Forráskód
Form1 neve: Form1
Form2 neve: frmFirstCity
FORM1:
GroupBox1 neve: groupbox1
PictureBox1 neve: PictureBox1
PictureBox2 neve: weatherImage
Label1 neve: RTTemp
Label2 neve: RTWeatherType
frmFirstCity:
Label1 neve: Label1
Label2 neve: Label2
NumericUpDown1 neve: NumericUpDown1
FORM1
Imports Microsoft.WindowsAPICodePack.Shell
Imports Microsoft.WindowsAPICodePack.Taskbar
Imports System.Xml
Imports System.Xml.XPath
Public Class Form1
Private strLocationID As String() = {"638242", "551801", "803660", "640161", "804365", "868274", "804462", "2295424", "2379574", "805328", "807517", "807518", "807523", "807525", "90584002", "44418", "812036", "2122265", "2295411", "676758", "2459115", "812897", "615702", "2151330", "813653", "721943", "815055", "815498", "816011", "1105779", "1118370", "2295426", "817719", "817849"}
Private strLocations As String() = {"Berlin (DE)", "Bécs (AT)", "Békéscsaba (HU)", "Bonn (DE)", "Budapest (HU)", "Bukarest (RO)", "Cegléd (HU)", "Chennai (IN)", "Chicago (US)", "Debrecen (HU)", "Hajdúböszörmény (HU)", "Hajdúdorog (HU)", "Hajdúnánás (HU)", "Hajdúszoboszló (HU)", "Kiev (RU)", "London (GB)", "Miskolc (HU)", "Moszkva (RU)", "Mumbai (IN)", "München (DE)", "New York (US)", "Nyíregyháza (HU)", "Párizs (FR)", "Peking (CH)", "Pécs (HU)", "Róma (IT)", "Sopron (HU)", "Szeged (HU)", "Szolnok (HU)", "Sydney (AU)", "Tokio (JP)", "Trivandrum (IN)", "Veszprém (HU)", "Visegrád (HU)"}
Private currentLocation As Integer = My.Settings.FirstCity
Private buttonNext As ThumbnailToolbarButton
Private buttonPrevious As ThumbnailToolbarButton
Private tbManager As TaskbarManager = TaskbarManager.Instance
Sub GetWeatherReport(ByVal locationId As Integer)
Me.Text = strLocations(locationId)
Dim doc As New XPathDocument(" https://weather.yahooapis.com/forecastrss?w=" & strLocationID(locationId) & "&u=c ")
Dim nav As XPathNavigator = doc.CreateNavigator()
Dim ns As New XmlNamespaceManager(nav.NameTable)
ns.AddNamespace("yweather", "https://xml.weather.yahoo.com/ns/rss/1.0")
Dim nodes As XPathNodeIterator = nav.[Select]("/rss/channel/item/yweather:condition", ns)
While (nodes.MoveNext())
Dim node As XPathNavigator = nodes.Current
RTTemp.Text = node.GetAttribute("temp", ns.DefaultNamespace).ToString() & "°C"
RTWeatherType.Text = node.GetAttribute("text", ns.DefaultNamespace).ToString()
weatherImage.ImageLocation = "https://l.yimg.com/a/i/us/we/52/" & node.GetAttribute("code", ns.DefaultNamespace).ToString() & ".gif"
SetProgressBarStyle(Convert.ToInt16(node.GetAttribute("temp", ns.DefaultNamespace)))
End While
End Sub
Private Sub SetProgressBarStyle(ByVal weather As Integer)
tbManager.SetProgressValue(50, 100)
If weather <= 10 Then
tbManager.SetProgressState(TaskbarProgressBarState.Normal)
End If
If weather >= 20 Then
tbManager.SetProgressState(TaskbarProgressBarState.Paused)
End If
If weather >= 30 Then
tbManager.SetProgressState(TaskbarProgressBarState.[Error])
End If
End Sub
Private Sub Form1_Shown(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Shown
buttonNext = New ThumbnailToolbarButton(My.Resources.nextArrow, "Következő város")
buttonNext.Enabled = True
AddHandler buttonNext.Click, AddressOf buttonNext_Click
buttonPrevious = New ThumbnailToolbarButton(My.Resources.prevArrow, "Előző város")
buttonPrevious.Enabled = True
AddHandler buttonPrevious.Click, AddressOf buttonPrevious_Click
TaskbarManager.Instance.ThumbnailToolbars.AddButtons(Me.Handle, buttonPrevious, buttonNext)
GetWeatherReport(currentLocation)
End Sub
Private Sub buttonNext_Click(ByVal sender As Object, ByVal e As EventArgs)
If (currentLocation + 1) < strLocationID.Length Then
currentLocation += 1
GetWeatherReport(currentLocation)
End If
End Sub
Private Sub buttonPrevious_Click(ByVal sender As Object, ByVal e As EventArgs)
If (currentLocation - 1) >= 0 Then
currentLocation -= 1
GetWeatherReport(currentLocation)
End If
End Sub
Private Sub PictureBox1_Click(sender As Object, e As EventArgs) Handles PictureBox1.Click
frmFirstCity.ShowDialog()
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
If My.Computer.Network.IsAvailable = True Then
Else
MsgBox("Nincs internetkapcsolat!", MsgBoxStyle.Critical, "HIBA!")
End
End If
End Sub
End Class
FRMFIRSTCITY
Public Class frmFirstCity
Private Sub frmFirstCity_Load(sender As Object, e As EventArgs) Handles MyBase.Load
NumericUpDown1.Value = My.Settings.FirstCity
Label2.Text = "Berlin (DE) = 0" & vbCrLf & _
"Bécs (AT) = 1" & vbCrLf & _
"Békéscsaba (HU) = 2" & vbCrLf & _
"Bonn (DE) = 3" & vbCrLf & _
"Budapest (HU) = 4" & vbCrLf & _
"Bukarest (RO) = 5" & vbCrLf & _
"Cegléd (HU) = 6" & vbCrLf & _
"Chennai (IN) = 7" & vbCrLf & _
"Chicago (US) = 8" & vbCrLf & _
"Debrecen (HU) = 9" & vbCrLf & _
"Hajdúböszörmény (HU) = 10" & vbCrLf & _
"Hajdúdorog (HU) = 11" & vbCrLf & _
"Hajdúnánás (HU) = 12" & vbCrLf & _
"Hajdúszoboszló (HU) = 13" & vbCrLf & _
"Kiev (RU) = 14" & vbCrLf & _
"London (GB) = 15" & vbCrLf & _
"Miskolc (HU) = 16" & vbCrLf & _
"Moszkva (RU) = 17" & vbCrLf & _
"Mumbai (IN) = 18" & vbCrLf & _
"München (DE) = 19" & vbCrLf & _
"New York (US) = 20" & vbCrLf & _
"Nyíregyháza (HU) = 21" & vbCrLf & _
"Párizs (FR) = 22" & vbCrLf & _
"Peking (CH) = 23" & vbCrLf & _
"Pécs (HU) = 24" & vbCrLf & _
"Róma (IT) = 25" & vbCrLf & _
"Sopron (HU) = 26" & vbCrLf & _
"Szeged (HU) = 27" & vbCrLf & _
"Szolnok (HU) = 28" & vbCrLf & _
"Sydney (AU) = 29" & vbCrLf & _
"Tokio (JP) = 30" & vbCrLf & _
"Trivandrum (IN) = 31" & vbCrLf & _
"Veszprém (HU) = 32" & vbCrLf & _
"Visegrád (HU) = 33"
End Sub
Private Sub NumericUpDown1_ValueChanged(sender As Object, e As EventArgs) Handles NumericUpDown1.ValueChanged
My.Settings.FirstCity = NumericUpDown1.Value
My.Settings.Save()
End Sub
End Class