¿Cómo puedo determinar el número de página de la ficha que acaba de hacer clic en gtk#?

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

  •  01-07-2019
  •  | 
  •  

Pregunta

Tengo un GTK notebook con múltiples pestañas.Cada ficha de la etiqueta es un compuesto recipiente que contiene, entre otras cosas, un botón que desea utilizar para cerrar la pestaña.El botón tiene un manejador para la señal "clicked".

Cuando la señal se llama, me sale el botón de widget y "EventArgs" como un parámetro.

Necesito determinar el número de página basado en el botón de widget, pero myNotebook.PageNum(buttonWidget) siempre devuelve -1.Incluso he intentado buttonWidget.Los padres que es el HBox que contiene el widget.

Alguna idea sobre lo que puedo hacer o qué estoy haciendo mal?

¿Fue útil?

Solución

Un trabajo fácil de todo es pasar el número de la página a su botón de Clic evento como construir los botones.

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); 
    };
}

El "the_page" es importante, ya que es una nueva variable que va a ser capturado por el delegado.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top