将多个小部件绑定到同一个处理程序 GTK#

Binding multiple widgets to the same handler GTK#

我有多个按钮,当我单击它们时,它们将执行相同的过程.. 有什么想法可以实现吗?提前致谢。

在 Gtk# 站点上,我发现了这个展示如何将信号绑定到按钮的示例:http://docs.go-mono.com/?link=T:Gtk.Button#

btn.Clicked += new EventHandler (btn_click);
btn2.Clicked += new EventHandler (btn_click);

我假设对多个按钮做同样的事情将允许您将所有按钮的点击信号绑定到同一个进程。

现在为了判断是哪个按钮触发了事件,您可以查看传递给回调函数的对象:

static void Window_Delete (object obj, DeleteEventArgs args)

在这种情况下,obj。让我知道这是否有效,我很好奇!我没有安装 Gtk#。

对于 Gtk+:

使用g_signal_connect函数只需使用相同的函数即可。 g_signal_connect(ptr_to_widget, "signal", G_CALLBACK(函数), NULL)

如果您想使用相同的函数并需要将数据传递给它,您需要使用指向您需要传递的数据的指针: g_signal_connect(ptr_to_widget, "signal", G_CALLBACK(函数), ptr_to_data)

将多个小部件连接到同一功能没有问题。