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 へのリンクを次に示し ます。