Как я могу контролировать событие с помощью «если еще» на Gtk # 2.0 - PullRequest
0 голосов
/ 06 сентября 2018

Я новичок в C #. Я работаю C # с Monodevelop на Linux. Я создал графический интерфейс и добавил ярлык. Я могу контролировать текст метки с помощью кнопки (когда я нажимаю кнопку, событие кнопки меняет текст метки). Но я не хочу использовать кнопку. Я хочу работать независимо от события (без кнопки и без щелчка, просто используйте условия). Возможно ли запустить событие без использования какого-либо объекта события? Я хочу сделать это:

например:

using System;
using Gtk;

public partial class MainWindow: Gtk.Window
{


public MainWindow () : base (Gtk.WindowType.Toplevel)
{

    Build (); 

}

protected void OnDeleteEvent (object sender, DeleteEventArgs a)
{
    Application.Quit ();
    a.RetVal = true;

    int b = 5;
    if (b == 5) 
    {

    label2.Text="hello";
    }

    else label2.Text="world"; 
}
}

Моя цель - изменить теги вне события (например, без использования кнопок). Я искал, но ничего не смог найти. Спасибо, что уделили время.

С наилучшими пожеланиями

Фарук

Ответы [ 2 ]

0 голосов
/ 24 октября 2018

Я нашел ответ. Если вы не хотите использовать событие, вы должны написать код в public MainWindow () : base (Gtk.WindowType.Toplevel). Код это:

using System;
using Gtk;

public partial class MainWindow: Gtk.Window
{

public MainWindow () : base (Gtk.WindowType.Toplevel)
{
 Build (); 
  int b = 5;
    if (b == 5) 
    {
    label2.Text="hello";
    }
    else label2.Text="world"; 
}

  protected void OnDeleteEvent (object sender, DeleteEventArgs a)
  {
    Application.Quit ();
    a.RetVal = true; 
   }
}

Спасибо, что уделили время.

0 голосов
/ 06 сентября 2018

Я предполагаю, что нет разницы в языке, когда вы используете monodevelop (я использую vs), поэтому я считаю, что ваш код должен работать. Я просто собираюсь опубликовать мой пример:

int a = 2;
Label L = new Label();      //only for demonstration
if (a == 0)
{
    L.Text = "0";
}
else if (a == 1)
{
    L.Text = "1";
}
else
{
    L.Text = "else";
}

В моем примере название вашего ярлыка будет L

EDIT

Я полагаю, что OP работает в WPF, потому что мой ответ не подходил для него В WPF только текстовые элементы управления имеют свойство .Text, все остальные используют .Content Чтобы было понятнее, я добавил ответ WPF

int a = 2;
Label L = new Label();      //only for demonstration
if (a == 0)
{
    L.Content = "0";
}
else if (a == 1)
{
    L.Content = "1";
}
else
{
    L.Content = "else";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...