在表单上隐藏和显示不同控件之间交替

时间:2015-03-17 08:59:04

标签: vb.net

我正在开发一个小项目,动态地将浏览器添加到表单并在计时器上交替使用,这样每个浏览器的一个浏览器从visible = true变为false等等,但不能用于我的生活想出怎么做。

 'Some Variables
Dim Browsers() As WebControl
Dim XMLFile As String = "\\********.xml"
Dim Controllist As New ArrayList
Dim BrowserCount As Integer

Private Sub Left_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    'Set form properties
    Me.Location = New Point(Screen.AllScreens(0).Bounds.X, Screen.AllScreens(0).Bounds.Y)
    Me.FormBorderStyle = Windows.Forms.FormBorderStyle.None
    Me.WindowState = FormWindowState.Maximized
    Me.TopMost = True

    Try

        'Load xml file with urls
        Dim xmlDoc As New XmlDocument
        Dim nodeList As XmlNodeList = xmlDoc.SelectNodes("//BottomLeft/url")
        xmlDoc.Load(XMLFile)

        'Define number of browsers based on xml
        Dim numberOfBrowsers As Integer = nodeList.Count + 1
        ReDim Browsers(numberOfBrowsers)

        'Put urls in an array to use later
        Dim UrlList As New ArrayList
        Debug.WriteLine("Number of browser is: " & numberOfBrowsers)
        For Each inst As XmlNode In nodeList
            UrlList.Add(inst.InnerText)
            Debug.WriteLine("Added to array: " & inst.InnerText)
        Next

        'Set properties and add the browsers
        For counter As Integer = 0 To numberOfBrowsers - 1
            Debug.WriteLine("Start adding browsers")
            Browsers(counter) = New WebControl
            With Browsers(counter)
                Debug.WriteLine("Setting properties")
                .Dock = DockStyle.Fill
                .Name = "Browers" & counter
                .Source = New Uri(UrlList(counter))
                If counter = 0 Then
                    .Visible = True
                Else
                    .Visible = False
                End If
            End With

            'Add the actual browsers after the properties have been set
            Me.Controls.Add(Browsers(counter))
            AddHandler Browsers(counter).LoadingFrameComplete, AddressOf All_Browsers_Loaded
            Debug.WriteLine("Browsers is added. Current Count is: " & counter)
        Next
    Catch ex As Exception
        Debug.WriteLine(ex)
    End Try

    'Count all the added browsers to alternate between them
    Dim allWebBrowser As New List(Of Control)
    For Each web As WebControl In FindControlRecursive(allWebBrowser, Me, GetType(WebControl))
        Debug.WriteLine("Webcontrols on form: " & web.Name)
        BrowserCount = +1
    Next

    'Start timer to switch browsers
    Timer1.Interval = 1000
    Timer1.Start()
End Sub

Private Sub All_Browsers_Loaded(ByVal sender As System.Object, ByVal e As Awesomium.Core.FrameEventArgs)
    Dim Browser As WebControl = DirectCast(sender, WebControl)
    Browser.Zoom = "80"
    Debug.WriteLine("Browsers is now zoomed out?")
End Sub

Public Function ChangeBrowser()

    Dim Changed As Boolean

    For I As Integer = 0 To BrowserCount
        With Browsers(I)
            If Browsers(I).Visible = True Then
                Browsers(I).Visible = False
                Changed = True
            End If

            If Changed = True Then
                Browsers(I).Visible = True
                Changed = False
            End If

            If I = BrowserCount Then
                Browsers(0).Visible = True
                Continue For

            End If

        End With
    Next

    Return False

End Function

在ChangeBrowser()函数中,我尝试获取第一个可见浏览器并使其不可见。然后将Changed Boolean设置为true。

最好的办法是什么?

0 个答案:

没有答案