在MonoDevelop和GTKSharp中使用小部件

时间:2011-05-14 03:08:02

标签: c# button combobox monodevelop gtk#

我使用VirtualStudio Express 2010切换,我正在尝试使用MonoDevelop和GTKSharp。现在。我正在尝试切换到新的编辑器软件,但它似乎与VisualStudio有很大不同。

我想要做的是基本上在这个编辑器中使用小部件。例如,当我在VisualStudio中创建一个按钮然后双击该项时,我会自动获取表示该表单中项目的代码。这就是问题,如何在MonoDevelop中为按钮和组合框创建事件?我现在正在浏览互联网示例两天,我无法弄清楚如何做到这一点。这些例子不够明确。

我想创造什么?首先,我想弄清楚如何使用ComboBox和按钮,这将允许我在ComboBox中选择3个选项中的一个,然后在按钮事件下我想要触发3个独立窗口中的1个,具体取决于已选择的项目。

请提供一些简单的示例,了解如何使用MonoDevelop,否则我将需要切换回Windows操作系统:(

请帮忙!

//编辑//

让我说我有时间在我手上,我真的很感兴趣。所以,如果GTK#允许我到目前为止:

public MainWindow () : base(Gtk.WindowType.Toplevel)
{
    Build ();
    button1.Clicked += button1_Click;
    combobox1.SelectionGet += comboBox1_Selection; << is this correct?
}


private void button1_Click(object s, EventArgs e)
{
}

private void comboBox1_Selection (object s, EventArgs e)
{
    switch (combobox1.SelectedIndex)
    {
        case 0:
            window1.Show();
            break;
        case 1:
            window2.Show();
            break;
        case 2:
            window3.Show();
            break;
    }
}

但我觉得我比以前更迷失。

2 个答案:

答案 0 :(得分:4)

创建一个新的C#GTK项目。

打开“MainWindow.cs”,在窗口右下角点击“Designer”按钮进入设计师模式。

接下来打开MonoDev窗口右侧的隐藏工具箱窗口。在主窗口画布上拖出“固定”容器。这是将按钮和东西放在窗口上所必需的。

现在拖动固定容器上的按钮。若要移动按钮,请在选中时单击按钮上方的小白框。

现在再次访问您的SourceCode。在构造函数中写::

button1.Clicked += button1_Click;

然后制作新的Click方法。

private void button1_Click(object s, EventArgs e)
{

}

答案 1 :(得分:3)

您无需手动添加处理程序......

在Gtk中,概念名称稍有变化,当一个与windows窗体中的控件相同的窗口小部件,只是不同的名称,它会发出一个“信号”,那么你要做的就是“处理”那个信号,它等同于在窗体中捕获事件。

您可以在monodevelop中选择您的小部件,然后转到该小部件的属性窗格,在那里您将看到一个名为“signals”的选项卡,其中包含小部件专门发出的信号列表,从而允许您当小部件执行单击操作时的代码操作。只需双击要处理的信号,例如,对于一个按钮,双击“已释放”信号,该信号是按钮发出的信号,当您单击它并释放它时。

我正在附上screenshot,以便您可以了解相关信息。希望它有所帮助!!