Использование виджетов в MonoDevelop и GTKSharp - PullRequest
3 голосов
/ 14 мая 2011

Я перешел с использования VirtualStudio Express 2010 и пытаюсь работать с MonoDevelop и GTKSharp.Сейчас.Я пытаюсь переключиться на новое программное обеспечение редактора, но, похоже, он сильно отличается от VisualStudio.

Я пытаюсь использовать виджеты в этом редакторе.Например, когда я создаю кнопку в VisualStudio, а затем дважды щелкаю элемент, я автоматически получаю фрагмент кода, представляющий элемент в форме.И вот в чем проблема, как мне создавать события для кнопок и выпадающих списков в MonoDevelop?Я два дня просматривал примеры из интернета и не могу понять, как это сделать.Примеры недостаточно понятны.

Что я пытаюсь создать?Сначала я пытаюсь выяснить, как использовать ComboBox и кнопку, которая позволит мне выбрать один из 3 вариантов в ComboBox, а затем при событии кнопки я хочу запустить 1 из 3 отдельных окон в зависимости от того, какой элемент был выбран.

Пожалуйста, предоставьте мне несколько простых примеров, как работать с MonoDevelop, иначе мне нужно будет вернуться к ОС Windows :(

Пожалуйста, помогите!

// edit //

Допустим, у меня есть время на руках, и я действительно заинтересован в нем. Так что, если 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 ]

4 голосов
/ 14 мая 2011

Создайте новый проект C # GTK.

Откройте «MainWindow.cs» и в правом нижнем углу окна нажмите кнопку «Дизайнер», чтобы перейти в режим дизайнера.

Затем откройте скрытое окно панели инструментов справа от окна MonoDev.Перетащите «Фиксированный» контейнер на холст главных окон.Это необходимо для размещения кнопок и прочего в вашем окне.

Теперь перетащите кнопку на контейнер Fixed.Чтобы переместить кнопку, нажмите на маленькое белое поле над кнопкой, когда она выбрана.

Теперь снова перейдите к исходному коду.В конструкторе напишите ::

button1.Clicked += button1_Click;

Затем создайте новый метод Click.

private void button1_Click(object s, EventArgs e)
{

}
3 голосов
/ 03 июля 2011

Вам не нужно добавлять обработчики вручную ...

В Gtk имена концептов немного изменяются, когда виджет, который совпадает с элементом управления в формах Windows, просто другое имя, делает что-то, что он излучает «сигнал», тогда вам нужно «обработать» это сигнал, который будет эквивалентен перехвату события в окнах форм.

Вы можете просто выбрать свой виджет в monodevelop и затем перейти на панель свойств этого виджета, там вы увидите вкладку под названием «сигналы», в которой есть список сигналов, которые виджет специально излучает, что позволяет вам код действия, когда виджет делает что-то вроде нажатия. Когда дважды щелкните по сигналу, который вы хотите обработать, например, для кнопки, дважды щелкните по сигналу «Отпущено», который является сигналом, излучаемым кнопкой при нажатии и отпускании.

Я прилагаю снимок экрана , чтобы вы могли получить изображение. Надеюсь, это поможет !!

...