1

Visual Basic を学習してから 1 週間が経ちましたが、完全に行き詰まっています。

WPF の XAML に 2 つの TabItems を持つ TabControl があります。

<TabControl Name="browser_tabs" Width="Auto" Height="Auto" BorderThickness="0">

        <TabItem Header="My Page">
            <DockPanel Name="tab1" Width="Auto" Height="Auto" Background="#fefefe" />
        </TabItem>

        <TabItem Header="Browser" Name="browserTab">
            <DockPanel Name="tab2" Width="Auto" Height="Auto" Background="#fefefe" />
        </TabItem>

    </TabControl>

そして、MainWindow クラス内のクラス、bookmarkControlsObj からタブを (プログラムによって/問題のある方法で) 変更しようとしています。

Class MainWindow
    ...

    Public Class bookmarkControlsObj
        Public Sub follow(ByVal url As String)
            browser_tabs.selectedIndex = 1 '<--- ahhhhhhhhhhhhhhhhhhh!'
            web_view2.Load(url)
        End Sub
    End Class

End Class

しかし、私は " Reference to a non-shared member requires an object reference." を取得し続けます。bookmarkControlsObj クラス内で XAML TabControl を共有する方法がわかりません。助けてください。

編集:

ネストされたクラスがある理由は、Javascript 関数を含むページを収容する cefsharp (クロム埋め込み) WebView からクラス内の「フォロー」サブRegisterJsObjectを呼び出しているためです。 Javascript によるメソッド。この場合、2番目のTabItemに含まれるブラウザーにロードする「フォロー」サブにURLを送信していますが、ロードする前にそのタブに自動的に切り替えたい-簡単に言えば、RegisterJsObjectうまくいくようですクラス内に含まれている場合..ネストされているのは、それが最終的な場所であるためです。

「共有」と宣言してTabItemに追加したため、クラスの2番目のタブでブラウザーにアクセスできますが、TabControl(視覚的に設定)をSharedとして宣言する方法がわかりません

これが役立つ場合は、RegisterJSObject へのリンクを次に示し ます。

4

1 に答える 1