Вот простой пример того, что я делаю в реальном приложенииНевозможно обновить ToolStrip с помощью файла класса
ФОРМУ СОДЕРЖАЩИЙ MAIN SUB OpenNew.vb
Шаг 1 - Основные подсказки пользователю для ввода с помощью диалога в тот же файл (OpenNew.vb) Шаг 2 - Выбор пользователей Какой тип проекта они открываются, тип 1 или тип 2 Шаг 3 - strOpenNewResponse заполняется при OpenNew диалог закрывается Шаг 3 - Форма открыт на основе выбора
Public Class OpenNew
Public Shared strOpenNewResponse As String = Nothing
Public Shared Sub Main()
OpenNew.ShowDialog()
If strOpenNewResponse IsNot Nothing Then
Dim formToShow As Form = Nothing
Select Case strOpenNewResponse
Case "Type1"
formToShow = New Form1
formToShow.ShowDialog()
Case "Type2"
formToShow = New Form2
formToShow.ShowDialog()
End Select
End If
End Sub
End Class
Form1 будет иметь StatusBar с одним ToolStrip и TreeView:
Public Class Form1
Inherits Form
Private Sub Form1_Shown(sender As Object, e As EventArgs) Handles Me.Shown
Utilities.DisplayStatus("Loading, Please Wait...")
Me.Cursor = Cursors.WaitCursor
PopulateTreeView("Root Node")
Utilities.DisplayStatus("Process Complete")
Me.Cursor = Cursors.Default
End Sub
End Class
Затем файл класса назван Utilities.vb
Public Class Utilities
Public Shared Sub DisplayStatus(ByVal strStatusMessage As String)
Form1.toolstripDisplayStatus.Text = strStatusMessage
Form1.toolstripDisplayStatus.Visible = True
Form1.statusstripParent.Refresh()
End Sub
End Class
Когда я делаю это ToolStrip товара никогда обновлений. Он просто остается значением по умолчанию.
Конечно, если я бег это так (без класса)
Public Class Form1
Inherits Form
Private Sub Form1_Shown(sender As Object, e As EventArgs) Handles Me.Shown
Me.Cursor = Cursors.WaitCursor
toolstripDisplayStatus.Text = "Loading, Please Wait..."
toolstripDisplayStatus.Visible = True
statusstripParent.Refresh()
PopulateTreeView("Root Node")
toolstripDisplayStatus.Text = "Process Complete"
toolstripDisplayStatus.Visible = True
statusstripParent.Refresh()
Me.Cursor = Cursors.Default
End Sub
End Class
Я думал, что это может быть проблемой с каким-то общественным/частным конфликтом, но я до сих пор не могу понять это ,
Я мог бы просто быть ослепленным очевидным в этой точке
Может кто-нибудь дать мне представление о том, что может быть причиной этого?
ADDED заблокированные soohoonigan
Когда вы используете класс утилит, я не вижу ссылки на основную форму, передаваемую ей в любом месте. Ваш компилятор не выделяет текст «Form1» внутри этого класса? – soohoonigan
Нет, просто указывая на Form1, как всегда – mreinsmith
Как вы открываете форму? Открываете ли вы его самостоятельно или открываете его в качестве первой формы своего заявления? –