0

私は現在、Webブラウザを構築しています。

ノートブック ウィジェットをタブ コントロールとして使用しています。

しかし、問題があります。タブのテキストを変更するにはどうすればよいですか?

ユーザーが開いた各タブ内にカスタム ウィジェットがあります。カスタム ウィジェットは、その上の Web ビューに他なりません。作業が簡単になるだけでなく、この方法を使用してエラーを制御することもできます。

さて、ノートブックのタブはカスタム ウィジェットの親であるため、カスタム ウィジェットからタブのテキストを変更するにはどうすればよいでしょうか。Parent プロパティに Text プロパティが表示されません。

ご協力いただきありがとうございます。

PS 私は MonoDevelop 2.6 を使用しています。言語: C#

編集:

メインのメイン ウィンドウで、このコントロールを追加して、カスタム ウィジェットをノートブック (TabControl に名前を変更しました) に追加しました。

// function to add a new tab
private void AddTab(string URL)
{
    // Create new label for the tab
    Label label = new Label();
    label.Text = "Loading...";
    // Add the page to the TabControl
    TabControl.AppendPage(control, label);
    // Show the TabControl and its children
    TabControl.ShowAll();

    // Navigate to the specified URL
    view.Open(URL);
}

そして、Webkit.WebView のみを含むカスタム ウィジェットには、次のようなものがあります。

システムを使用して; WebKit の使用; Gtk を使用します。

public partial class WebControl : Gtk.Bin
{
    public WebView view = new WebView();

    public WebControl ()
    {
        this.Build();

        view.Open("http://www.google.com.au");

        this.Add(view);

        view.Show();
        view.ShowAll();

        this.Show();
        this.ShowAll();

        view.LoadFinished += new LoadFinishedHandler(viewLoadFinished);
    }

    protected void viewLoadFinished (object sender, WebKit.LoadFinishedArgs e)
    {
        // This is where I want to change the text of the tab, and the tab is the parent of this custom control
    }

    public WebView CurrentView
    {
        get { return view; }
    }

だから、私のコードがあります。ノートのテキストを変更するためのノートブックのタブのプロパティが見つかりません。

4

1 に答える 1

0

Gtk.Widget の .Parent プロパティは、実際のウィジェット タイプにキャストされないため、親であるウィジェットのタイプに固有のプロパティを持たないことは明らかです。あなた自身をキャストする必要があります。

親のリストを Gtk.Notebook に移動したら、呼び出すことができますnotebook.SetTabLabelText (this, "new text");(または、前にコードがないため、名前が正しくない可能性があります)。

于 2013-04-04T11:08:05.087 に答える