none
新手問題:問一段程式碼 RRS feed

  • 問題

  • 不好意思...不知道有沒有哪位大大可以幫我解釋這段程式碼...
    我在書上看到,但沒有寫得很詳細...

    DialogResult dr = new DialogResult();
    dr = MessageBox.Show("Please press a buttun", "buttom test",MessageBoxButtons.AbortRetryIgnore");
    button3.Text = "You presses" + dr.ToString() + "button";


    中間那句我知道(書上有講),但不知道跟上下兩句有什麼關係...
    麻煩囉 >"<
    2009年7月2日 上午 08:45

解答

  • HI,


    DialogResult dr = new DialogResult();    //建立存放MessageBox.Show傳回結果的變數
    dr = MessageBox.Show("Please press a buttun", "buttom test",MessageBoxButtons.AbortRetryIgnore");
    button3.Text = "You presses" + dr.ToString() + "button";    //將MessageBox.Show傳回結果(也就是使用者按下的鍵)顯示出來,
    • 已標示為解答 千刃 2009年7月2日 上午 09:31
    2009年7月2日 上午 08:54
  • DialogResult dr = new DialogResult();
    dr = MessageBox.Show("Please press a buttun", "buttom test",MessageBoxButtons.AbortRetryIgnore");

    等於

    DialogResult dr = MessageBox.Show("Please press a buttun", "buttom test",MessageBoxButtons.AbortRetryIgnore");

    第三句只是把字串連接起來丟給 button3.Text 顯示出來而已。

    小人物一枚。
    • 已標示為解答 千刃 2009年7月2日 上午 09:32
    2009年7月2日 上午 08:54
    版主
  • 我覺得是一個非常爛的範例.
    好一點的範例是
    1.
      if(MessageBox.Show("Please press a buttun", "buttom test",MessageBoxButtons.YesNo")==DialogResult.Yes){
           File.Save(); 
    }
    2.
    DialogResult dr = new DialogResult();
    dr = MessageBox.Show("Please press a buttun", "buttom test",MessageBoxButtons.AbortRetryIgnore");
        switch (dr.Result)
                {
        case DialogResult.Abort
               Abort();
         break;
         case DialogResult.Retry
               Retry();
          break;
          case DialogResult.Ignore
                 Ignore();
          break;
          default:

          break;

    }

    • 已標示為解答 千刃 2009年7月2日 上午 09:32
    2009年7月2日 上午 09:15
  • 書上寫的範例嗎
    怎摸會這樣寫

    DialogResult dr = new DialogResult(); '<=這行有不必要的New,下面的MessageBox.Show選完後就回傳出DialogResult了
    dr = MessageBox.Show("Please press a buttun", "buttom test",MessageBoxButtons.AbortRetryIgnore");

    如小朱大所述
    這兩行是可以合併成下面這樣的
    DialogResult dr = MessageBox.Show("Please press a buttun", "buttom test",MessageBoxButtons.AbortRetryIgnore");

    若不合併也是如下寫會好一點
    DialogResult dr;
    dr = MessageBox.Show("Please press a buttun", "buttom test",MessageBoxButtons.AbortRetryIgnore");

    簡單說來
    這程式就是
    Step1.宣告DialogResult變數方便後面去接收MessageBox的選取值
    Step2.彈出MessageBox秀出"Please press a buttun"字串,並把選取的結果塞回第一步宣告的dr變數
    Step3.把選取值給秀出來

    你需要了解的技術為

    http://www.dotblogs.com.tw/larrynung/
    • 已標示為解答 千刃 2009年7月2日 上午 09:33
    2009年7月2日 上午 09:31

所有回覆

  • HI,


    DialogResult dr = new DialogResult();    //建立存放MessageBox.Show傳回結果的變數
    dr = MessageBox.Show("Please press a buttun", "buttom test",MessageBoxButtons.AbortRetryIgnore");
    button3.Text = "You presses" + dr.ToString() + "button";    //將MessageBox.Show傳回結果(也就是使用者按下的鍵)顯示出來,
    • 已標示為解答 千刃 2009年7月2日 上午 09:31
    2009年7月2日 上午 08:54
  • DialogResult dr = new DialogResult();
    dr = MessageBox.Show("Please press a buttun", "buttom test",MessageBoxButtons.AbortRetryIgnore");

    等於

    DialogResult dr = MessageBox.Show("Please press a buttun", "buttom test",MessageBoxButtons.AbortRetryIgnore");

    第三句只是把字串連接起來丟給 button3.Text 顯示出來而已。

    小人物一枚。
    • 已標示為解答 千刃 2009年7月2日 上午 09:32
    2009年7月2日 上午 08:54
    版主
  • 不是說非常懂...
    我再去研究研究好了 @@
    或許,書看到後面時,就會知道了。

    感謝各位大大!
    2009年7月2日 上午 09:10
  • 我覺得是一個非常爛的範例.
    好一點的範例是
    1.
      if(MessageBox.Show("Please press a buttun", "buttom test",MessageBoxButtons.YesNo")==DialogResult.Yes){
           File.Save(); 
    }
    2.
    DialogResult dr = new DialogResult();
    dr = MessageBox.Show("Please press a buttun", "buttom test",MessageBoxButtons.AbortRetryIgnore");
        switch (dr.Result)
                {
        case DialogResult.Abort
               Abort();
         break;
         case DialogResult.Retry
               Retry();
          break;
          case DialogResult.Ignore
                 Ignore();
          break;
          default:

          break;

    }

    • 已標示為解答 千刃 2009年7月2日 上午 09:32
    2009年7月2日 上午 09:15
  • 為什麼沒事要多 new DialogResult();
    反正接下來就 assign MessageBox.Show 結果...



    2009年7月2日 上午 09:26
  • 書上寫的範例嗎
    怎摸會這樣寫

    DialogResult dr = new DialogResult(); '<=這行有不必要的New,下面的MessageBox.Show選完後就回傳出DialogResult了
    dr = MessageBox.Show("Please press a buttun", "buttom test",MessageBoxButtons.AbortRetryIgnore");

    如小朱大所述
    這兩行是可以合併成下面這樣的
    DialogResult dr = MessageBox.Show("Please press a buttun", "buttom test",MessageBoxButtons.AbortRetryIgnore");

    若不合併也是如下寫會好一點
    DialogResult dr;
    dr = MessageBox.Show("Please press a buttun", "buttom test",MessageBoxButtons.AbortRetryIgnore");

    簡單說來
    這程式就是
    Step1.宣告DialogResult變數方便後面去接收MessageBox的選取值
    Step2.彈出MessageBox秀出"Please press a buttun"字串,並把選取的結果塞回第一步宣告的dr變數
    Step3.把選取值給秀出來

    你需要了解的技術為

    http://www.dotblogs.com.tw/larrynung/
    • 已標示為解答 千刃 2009年7月2日 上午 09:33
    2009年7月2日 上午 09:31