2011-06-04 70 views
0

例如,而不是有一个按钮来启动该方法,该方法自动发生而无需任何用户交互。执行方法在C#中的窗体上加载对象

private void button13_Click(object sender, EventArgs e) 
{ 
    try 
    { 
     ServiceController sc = new ServiceController(); 
     sc.ServiceName = "Spooler"; 

     if (sc.Status.ToString().ToLower() == "stopped") 
     { 
      serviceStatusLabel.Text = "Installed but stopped"; 
     } 

     if (sc.Status.ToString().ToLower() == "running") 
     { 
      serviceStatusLabel.Text = "Installed and started"; 
     } 
    } 
    catch 
    { 
     serviceStatusLabel.Text = "Service not installed"; 
    } 
} 

我只想Label对象,以显示服务状态时加载窗体时,不使用按钮

回答

0

...我能正确地回答你的问题吗? 您想要在加载对象或表单时执行一段代码吗? 嗯,这很容易:P

单击您在设计对象(或窗体)上,在属性Dock中单击闪电图标,进入负载显示事件,并双击框。 A的代码新片应该已经在代码视图中创建,这样的事:

private void Object_Load(blabla) handles Object.Load 
{ 
} 

不管代码是在此情况,当对象被加载或示出将被执行。

+0

对不起,但我在活动列表中看不到任何“加载”或“显示”事件 – Mike 2011-06-04 18:21:56

+0

干杯发现它:) – Mike 2011-06-04 19:07:02

3

编辑:鉴于您的评论,你实际上是Form.Load事件之后?听起来像是这样。订阅该事件的任何事件处理程序将在“首次显示该表单时”执行。

(混乱的事情是,关于“有载”的对象的您的标题会谈,而这听起来像你真的要当形式被加载到被调用的方法。)


“它在表单上的输出时”的含义并不十分清楚,但您可能需要查看TextChangedVisibleChanged事件。这就是如果当标签被更改时您想要发生某种情况。

如果您正在寻找服务状态已被更改,恐怕看起来并没有为此提出的事件。请注意,这将是许多清洁器来打开枚举值,而不是将其转换为字符串,降低它,然后将其与硬编码的常量进行比较。

+0

我只想让Label对象在窗体加载时显示服务状态,而不使用按钮 – Mike 2011-06-04 17:58:18

+0

@Mike:那么你是在Form.Load事件之后吗? – 2011-06-04 17:59:46

+0

我认为他意味着首次显示表单时,如何自动初始化Text属性,而不是在按钮的单击事件中。 – Marcelo 2011-06-04 17:59:56