我如何在Gtk#2.0上使用'if else'控制事件

时间:2018-09-06 13:10:52

标签: c# user-interface if-statement events text

我是C#的新手。我在Linux上与monodevelop一起使用C#。我创建了GUI并添加了标签。我可以通过按钮控制Label的文本(当我单击button时,按钮的事件更改了label的文本)。但是我不想使用按钮。我想独立于事件运行(没有按钮也没有点击,仅使用条件即可)。是否可以在不使用任何对象事件的情况下运行事件?我想这样做:

例如:

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

我的目标是在事件之外更改标签(例如:不使用按钮)。我搜索了,但找不到任何东西。谢谢你的时间

最诚挚的问候

Faruk

2 个答案:

答案 0 :(得分:0)

我假设您在使用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 answertoo

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

答案 1 :(得分:0)

我找到了答案。如果您不想使用事件,则应将代码写入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; 
   }
}

感谢您的时间。