2011-06-04 30 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