0

我目前正在构建一个网络浏览器。

我正在使用笔记本小部件作为选项卡控件。

但是有一个问题:如何更改选项卡的文本?

我在用户打开的每个选项卡内都有一个自定义小部件。自定义小部件只不过是其上的 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 回答