Wie kann ich die Seitenzahl für die Registerkarte bestimmen Ich klickte nur in GTK # auf?

StackOverflow https://stackoverflow.com/questions/93044

  •  01-07-2019
  •  | 
  •  

Frage

Ich habe einen GTK Notebook mit mehreren Registerkarten. Jede Registerkarte Etikett ist ein Behälter aus Verbundstoff enthält, unter anderem, eine Schaltfläche ich verwenden möchte, auf die Registerkarte zu schließen. Der Button hat einen Handler für das „geklickt“ -Signal.

Wenn das Signal genannt wird, erhalte ich die Taste Widget und "EventArgs" als Parameter.

Ich muss die Seitenzahl bestimmen, auf die Schaltfläche Widget basiert, aber myNotebook.PageNum (buttonWidget) immer -1 zurück. Ich habe sogar versucht, buttonWidget.Parent die die HBox, die das Widget enthält.

Alle Ideen, was ich tun kann oder was ich tue falsch?

War es hilfreich?

Lösung

Eine einfache Arbeit um ist die Seitenzahl auf Ihre Schaltfläche Clicked Ereignis übergeben, wie Sie die Tasten konstruieren.

for (int page = 0; page < n; page++){ 
    int the_page = page;
    NotebookPage p = new NotebookPage ();
    ...
    Button b = new Button ("Close page {0}", the_page);
    b.Clicked += delegate { 
        Console.WriteLine ("Page={0}", the_page); 
    };
}

Die „the_page“ ist wichtig, da es sich um eine neue Variable, die von den Delegierten eingefangen wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top