伊莉討論區

標題: msgbox問題求助 [打印本頁]

作者: a135bcde    時間: 2015-7-3 02:06 PM     標題: msgbox問題求助

本帖最後由 a135bcde 於 2015-7-3 02:07 PM 編輯

小弟我想用msgbox寫成向下面那張圖的樣子但因為學校買的書也只是簡單帶過...沒什麼解釋msgbox...
可請問網上的各位大大這程式碼要怎麼寫??
若有人寫出來可以順便解釋一下嗎??謝謝各位幫忙
(返回第一層那個若不行也沒關西)
[attach]109508343[/attach]



作者: rr09192084    時間: 2015-7-3 07:45 PM

看看這個是不你要的
你問的這個問題是程式語言最基礎的部分
所以你說書本上是簡單帶過真令人不敢置信
  1.         ' 以你這個圖所表示的流程會有2層的架構,3個問題
  2.         ' 以下3個變數代表3個問題
  3.         Dim msgTop As String
  4.         Dim msgYes As String
  5.         Dim msgNo As String
  6.         ' 以下3個變數代表3個問題視窗的抬頭
  7.         Dim titleTop As String
  8.         Dim titleYes As String
  9.         Dim titleNo As String
  10.         ' 以下3個變數代表3個問題所選擇的答案
  11.         Dim responseTop As MsgBoxResult
  12.         Dim responseYes As MsgBoxResult
  13.         Dim responseNo As MsgBoxResult
  14.         ' 這是設定MsgBox的形式與按鈕
  15.         Dim style As MsgBoxStyle
  16.         ' 這是控制是否重複迴圈的布林值變數
  17.         Dim isEnd As Boolean = True
  18.         ' 設定MsgBox的樣式,請自行參閱MSDN https://msdn.microsoft.com/zh-tw/library/139z2azd(v=vs.90).aspx
  19.         style = MsgBoxStyle.DefaultButton3 Or MsgBoxStyle.Critical Or MsgBoxStyle.YesNo

  20.         While isEnd = True
  21.             msgTop = "第一個問題?"
  22.             titleTop = "第一個問題的抬頭"
  23.             responseTop = MsgBox(msgTop, style, titleTop)
  24.             If responseTop = MsgBoxResult.Yes Then   ' 第一層回答是
  25.                 msgYes = "第一層回答是之後的問題?"
  26.                 titleYes = "第一層回答是之後的抬頭"
  27.                 responseYes = MsgBox(msgYes, style, titleYes)
  28.                 If responseYes = MsgBoxResult.Yes Then   ' 第一層回答是之後第二層回答是
  29.                     ' 這裡可以寫一些你要作處裡的程式
  30.                     ' ............
  31.                     ' ............
  32.                     ' 然後決定要不要跳出迴圈
  33.                     isEnd = False ' 改成False,所以會跳出迴圈
  34.                 Else  ' 第一層回答是之後第二層回答否
  35.                     ' 這裡可以寫一些你要作處裡的程式
  36.                     ' ............
  37.                     ' ............
  38.                     ' 然後決定要不要跳出迴圈
  39.                     isEnd = False ' 改成False,所以會跳出迴圈
  40.                 End If
  41.             Else
  42.                 ' 第一層回答否
  43.                 msgNo = "第一層回答否之後的問題?"
  44.                 titleNo = "第一層回答否之後的抬頭"
  45.                 responseNo = MsgBox(msgNo, style, titleNo)
  46.                 If responseYes = MsgBoxResult.Yes Then   ' 第一層回答否之後第二層回答是
  47.                     ' 這裡可以寫一些你要作處裡的程式
  48.                     ' ............
  49.                     ' ............
  50.                     ' 然後決定要不要跳出迴圈
  51.                     isEnd = False ' 改成False,所以會跳出迴圈
  52.                 Else
  53.                     ' 第一層回答否之後第二層回答否
  54.                     ' 這裡可以寫一些你要作處裡的程式
  55.                     ' ............
  56.                     ' ............
  57.                     ' 然後決定要不要跳出迴圈
  58.                     isEnd = True ' 仍然維持True,所以會回到第一個問題
  59.                 End If
  60.             End If
  61.         End While
  62.     End Sub
複製代碼

作者: darkjack    時間: 2015-7-3 07:46 PM

大致上是這樣寫

只是這樣作法會無限迴圈

註解我不想寫.....
  1.   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  2.     Dim Mytest1
  3.     Dim Mytest2
  4.     Dim Mytest3

  5. ori:

  6.     Mytest1 = Nothing
  7.     Mytest2 = Nothing
  8.     Mytest3 = Nothing

  9.     Mytest1 = MsgBox("內容1", MsgBoxStyle.YesNo, "標題1")

  10.     If Mytest1 = MsgBoxResult.Yes Then
  11.       Mytest1 = MsgBox("內容2", MsgBoxStyle.YesNo, "標題2")
  12.       If Mytest1 = MsgBoxResult.Yes Then
  13.         Mytest1 = MsgBox("內容3", MsgBoxStyle.YesNo, "標題3")
  14.       Else
  15.         Mytest2 = MsgBox("內容3 -2", MsgBoxStyle.YesNo, "標題3-2")
  16.       End If
  17.       GoTo ori

  18.     Else
  19.       Mytest2 = MsgBox("內容2 - 1", MsgBoxStyle.YesNo, "標題2 - 1")
  20.       If Mytest2 = MsgBoxResult.Yes Then
  21.         Mytest2 = MsgBox("內容4", MsgBoxStyle.YesNo, "標題4")
  22.       Else
  23.         Mytest3 = MsgBox("內容4 -2", MsgBoxStyle.YesNo, "標題4-2")
  24.       End If
  25.     End If

  26.     GoTo ori

  27.   End Sub
複製代碼



作者: rr09192084    時間: 2015-7-3 08:07 PM

rr09192084 發表於 2015-7-3 07:45 PM
看看這個是不你要的
你問的這個問題是程式語言最基礎的部分
所以你說書本上是簡單帶過真令人不敢置信 ...

哈哈!我要說的是,這個問題重點不在MsgBox怎麼用,應該是流程的控制部分。
它這3層的問題架構以及最外圍要用迴圈控制才是重點
MsgBox只是決定流程分歧走向的工具而已
你說是不是呢
作者: a135bcde    時間: 2015-7-3 10:41 PM

感謝眾位大大的幫助~
另外我在問一下VB6.0中能用背景音樂嗎??
作者: e77    時間: 2015-7-29 12:07 PM

哇咧~~學校還在學VB6呀>< ,該跟老師說教新的啦~要不然就VB.NET,學那種超傳統的東西~...+_+....對未來幫助有限~如果要寫到ASP.NET(VB)又是不同觀念了~

作者: darkjack    時間: 2015-7-29 06:27 PM

e77 發表於 2015-7-29 12:07 PM
哇咧~~學校還在學VB6呀>< ,該跟老師說教新的啦~要不然就VB.NET,學那種超傳統的東西~...+_+....對未來幫 ...

vb6 , MS 都已經擺明 不再支援 (好像從win 7 之後)

vb6 還會用到??? 一般來說應該還在XP 系統吧?

現在XP 系統也被 MS 捨棄了.....

vb6 以現在的情況來說...除了範例多之外....好像沒什麼實用的地方了....

尤其VB 系列出來的 都不能跨平台 (DLL 函式庫)...




歡迎光臨 伊莉討論區 (http://a401.file-static.com/) Powered by Discuz!