2017-06-02 46 views
0

我正在學習按鈕,並且當按下按鈕並在下面寫下「我的世界」的打印指令時,我直接再次寫入相同的指令,只打印第一個。我嘗試了MessageBox,它不起作用。我把另一個按鈕,並複製打印嘿世界的兩個指令,它的工作,但在第一個按鈕,仍然沒有抓住該指令。什麼可能是錯的?c#不讀取特定按鈕中的某些代碼

private void btn_heyworld(object sender, EventArgs e) 
{ 
    Console.WriteLine("Hey world"); 
    Console.WriteLine("Hey World 2"); 
} 

而且只打印...嘿世界

+8

這不能是你的實際代碼,因爲你發佈的那個將會* definitly *打印這兩個語句,因此你的問題是無法解決的。 – HimBromBeere

+4

也許你沒有重建?或沒有保存並運行您的應用程序的前一個版本w /只有一條語句 –

+0

它必須工作...如果不是這樣,那麼定義此按鈕的事件時必定會犯一些錯誤。也許你有一些其他'ButtonClick'事件處理程序分配,只打印第一行? – pitersmx

回答

1

我能想到的幾種情況下你會得到所描述的行爲,但沒有與你的代碼。使用類似MessageBox而不是Console.WriteLine的內容不會改變行爲。

幾個可能的情況下

  1. 你看不到任何東西 - 這將表明你的代碼不會被調用,也許你已經得到的東西的名稱錯字?請注意,許多此類情況會導致錯誤,因爲您試圖調用一個不存在的方法 - 例如如果您錯誤地致電SayHello2而不是SayHello,並且SayHello2不存在,您會收到錯誤消息。
  2. 您只能看到其中一條消息 - 這可能表明您在顯示或覆蓋部分代碼前覆蓋了某些內容。

例如,您可以設定msg以「嘿世界」,但與「嘿世界2」覆蓋它,然後寫msgConsole - msg現在說「嘿,天下2」,所以這就是將被寫入。這樣

private void btn_heyworld(object sender, EventArgs e) 
{ 
    string msg = "Hey world"; 
    msg = "Hey world 2"; 
    Console.WriteLine(msg); 
} 

另一種情況的東西可能會涉及你有這樣的

private void btn_heyworld(object sender, EventArgs e) 
{ 
    Console.WriteLine("Hey world"); 
} 

private void btn_heyworld2(object sender, EventArgs e) 
{ 
    Console.WriteLine("Hey World 2"); 
} 

多個處理程序。如果您的按鈕鏈接到btn_heyworld你只會得到btn_heyworld行爲。

  • 你得到兩個消息 - 這將表明你的按鈕連接到正確的處理程序,並在做什麼預期 - 即單擊時運行,並打印您的郵件。
  • 建議

    1. 試試你張貼在你的問題的代碼,並確保您的按鈕的處理程序被調用btn_heyworld
    2. 嘗試我已包含的代碼並查找我描述的行爲。
    3. 發佈您的實際代碼,以便我們更好地處理您實際做的事情。