我有方法 SwitchScreen 來更改 userControl。我想將我的應用程式從 C# 更改為 VB。我試圖在谷歌上找到但沒有結果。有人可以幫忙嗎?:(
這是我的方法:
public void SwitchScreen(object sender, string getText)
{
var screen = (UserControl)sender;
headerTitle.Text = getText;
if ((screen) != null)
{
StackPanelMain.Children.Clear();
StackPanelMain.Children.Add(screen);
}
}
我在VB中試過這樣:
Public Sub SwitchScreen(sender As Object, getText As String)
Dim Screen = sender(UserControl)
headerTitle.Text = getText
If (Screen Is Nothing) Then
StackPanelMain.Children.Clear()
StackPanelMain.Children.Add(Screen)
End If
End Sub
但是 Dim Screen = sender(UserControl), 'UserControl' 上的錯誤是一個型別別,不能用作運算式。
uj5u.com熱心網友回復:
當您以這種方式撰寫時,您正在更改該行的含義。
C#
var screen = (UserControl)sender;
這是采用'sender' var,轉換為'UserControl' 類,并設定為由'screen' var 參考。
VB
Dim Screen = sender(UserControl)
自從我在 VB 中作業以來已經有一段時間了,但看起來你正在呼叫一個名為“Sender”的函式并將“UserControl”作為引數傳遞,但事實并非如此。
您需要為您的發件人 var 找到“cast as Object”的 VB 等效項。
也許
Dim Screen = CType(sender, UserControl)
uj5u.com熱心網友回復:
這應該作業
Public Sub SwitchScreen(sender As Object, getText As String)
Dim Screen as UserControl = sender
headerTitle.Text = getText
If (Screen IsNot Nothing) Then
StackPanelMain.Children.Clear()
StackPanelMain.Children.Add(Screen)
End If
End Sub
vb 應該自動轉換 - 可能不需要轉換。
uj5u.com熱心網友回復:
Public Sub SwitchScreen(sender As Object, getText As String)
Dim Screen As UserControl = TryCast(sender, UserControl)
headerTitle.Text = getText
If (Screen IsNot Nothing) Then
StackPanelMain.Children.Clear()
StackPanelMain.Children.Add(Screen)
End If
End Sub
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/506743.html