none
VB2008 If ... end If RRS feed

  • 問題

  • 我有一個少少的問題,我想不通...

    在form1,加了1個button1

    我想:按下button1(hide),就會Timer1開始,

    再按一下,button1(show),就會Timer1停止,

    再再按一下,button1(hide),就會Timer1開始, .........

     

    但是,再按的功能,我做不到....可以只用1個button,就可以做2個功能?

    如果分開2個button,就可以做到,不過,我想 合併 成一個button

      If Button1.Text = "hide" Then
                Timer1.Start()
                Button1.Text = "show"
            End If

      If Button2.Text = "show" Then
                Timer1.Stop()
                Button2.Text = "hide"
            End If

    如何 合併 成一個button?

    2012年8月3日 上午 06:52

解答

  • 不建議用文字來判斷,

    判斷  Timer1.Enabled 比較好

            If Timer1.Enabled Then 
                Timer1.Stop()
            Else
                Timer1.Start()
            End If


    • 已標示為解答 手指 2012年8月3日 上午 07:28
    • 已取消標示為解答 手指 2012年8月4日 上午 11:26
    • 已標示為解答 手指 2012年8月4日 上午 11:26
    • 已取消標示為解答 手指 2012年8月4日 上午 11:26
    • 已標示為解答 Bill ChungMVP, Moderator 2012年8月10日 下午 01:49
    2012年8月3日 上午 07:24

所有回覆

  • 原來加  Else ,就可以了,,哈哈

    • 已標示為解答 手指 2012年8月3日 上午 07:22
    • 已取消標示為解答 手指 2012年8月4日 上午 11:26
    2012年8月3日 上午 07:22
  • 不建議用文字來判斷,

    判斷  Timer1.Enabled 比較好

            If Timer1.Enabled Then 
                Timer1.Stop()
            Else
                Timer1.Start()
            End If


    • 已標示為解答 手指 2012年8月3日 上午 07:28
    • 已取消標示為解答 手指 2012年8月4日 上午 11:26
    • 已標示為解答 手指 2012年8月4日 上午 11:26
    • 已取消標示為解答 手指 2012年8月4日 上午 11:26
    • 已標示為解答 Bill ChungMVP, Moderator 2012年8月10日 下午 01:49
    2012年8月3日 上午 07:24
  • 謝謝你回答^^

    為甚麼 不建議用文字來判斷?

    如果用文字來判斷,會有問題?

    2012年8月3日 上午 07:30
  • 有沒有人可以答我一個問題,,我找了書大半天了,都找不到

    我在form1 , 加了 一個 TextBox1

    我想 指定 TextBox1 , 只可以 輸入 數字

    按Button1時,TextBox1 不可以 空白

    MsgBox("一定要寫上數字")

     

    2012年8月3日 上午 09:51
  • 您好,請參考:

      Wish to use text box to only allow numeric Data entry

    Numeric TextBox


    以上說明若有錯誤請指教,謝謝。
    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/


    • 已編輯 亂馬客 2012年8月3日 上午 10:47
    2012年8月3日 上午 10:44
  • 謝謝你回答^^

    為甚麼 不建議用文字來判斷?

    如果用文字來判斷,會有問題?


    因為你要判斷 "正確的目標", 如果今天在程式中有某行程式不小心更改了錯誤的字串呢 ?

    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2012年8月3日 下午 12:29
    版主
  • 想了一天有多了...都是不行,,有人可以指點一下我嗎?

    有3個TextBox

    TextBox1,TextBox2,TextBox3

    我寫了,一定要有輸入

      If TextBox1.Text = Nothing Or TextBox2.Text = Nothing Or TextBox3.Text = Nothing  Then

    MsgBox("一定要有輸入")

    End If

    另外,我寫了

      If Button5.Text = "1" Then
                TextBox1.Enabled = False
                TextBox2.Enabled = False
                TextBox3.Enabled = False
                Button5.Text = "2"
            Else
                If Button5.Text = "2" Then
                    TextBox1.Enabled = True
                    TextBox2.Enabled = True
                    TextBox3.Enabled = True
                    Button5.Text = "1"
                End If
            End If

    如可合併 2個 功能??

    我試過用

        Try

            Catch ex As Exception

            End Try

    都不行...

     

    2012年8月4日 上午 09:09
  • 完全看不懂你的邏輯是什麼? 這兩件事有什麼關係 ?

    另一個是 Textbox1.Text = Nothing , 這要成立的機會不太多, 因為當你不輸入東西 TextBox1.Text 屬性值應該會是 String.Empty 而非 Nothing. 顯然你不清楚 Nothing 是什麼,  比較正確的判斷方式應該是使用 String.IsNullOrEmpty 方法

    把 [Visual Basic 中的控制流程] 詳細讀一遍, 不要用瞎拼湊的方法寫程式, 把基本的東西讀一讀.


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2012年8月4日 上午 09:45
    版主
  • 是不可以 合併?

    我想 一個Button,有這2個功能

    一定要有輸入 + Enabled = False + Button5.Text = "1/2" 

     

    2012年8月4日 上午 09:51
  • 中文不太好, 完全看不懂你的重點是什麼.

    照你的說法, 就是照順序寫下去.

    模糊的問題描述, 只會得到模糊的答案


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2012年8月4日 上午 09:55
    版主
  • 有3個TextBox

    TextBox1,TextBox2,TextBox3

    有1個Button

    Button1

    -----------------------------------------

    當TextBox1,TextBox2,TextBox3,有輸入文字

    按下Button1,

    Button1.Text = "off"   和 把 TextBox1,TextBox2,TextBox3.Enabled = False

    再按一下Button1,

    TextBox1,TextBox2,TextBox3.Enabled = True 和 Button1.Text = "open"

     

    2012年8月4日 上午 10:26
  • 你有兩種方法:

    1. 使用 AND 來連接所有條件,這是初學者慣用的作法。
    2. 使用 Design Pattern 方式來將 if 判斷包起來,這是進階者用的作法。

    學習不是查個 Google 套個書上的範例就算了,而是去熟悉了解每個程式碼背後的意義,否則就算學個幾百年,它也不會是你的。
    =================================
    小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
    雲端學堂Facebook: http://www.facebook.com/studyazure

    2012年8月4日 上午 10:37
    版主
  • 我用過 and / or if / try 都試過了,,想不通了...
    2012年8月4日 上午 11:03
  •  If TextBox1.Text = Nothing Or TextBox2.Text = Nothing Or TextBox3.Text = Nothing And Button1.Text = "OFF" Then
                TextBox1.Enabled = False
                TextBox2.Enabled = False
                TextBox3.Enabled = False
                Button1.Text = "open"
            Else
                If Button1.Text = "open" Then
                    TextBox1.Enabled = True
                    TextBox2.Enabled = True
                    TextBox3.Enabled = True
                    Button1.Text = "OFF"
                End If
            End If
    都是不行....
    • 已編輯 手指 2012年8月4日 上午 11:40
    2012年8月4日 上午 11:39
  • 按下Button

    If TextBox1.Text = Nothing Or TextBox2.Text = Nothing Or TextBox3.Text = Nothing Then
                MsgBox("請輸入文字")
                TextBox1.Enabled = True
                TextBox2.Enabled = True
                TextBox3.Enabled = True
            Else
                TextBox1.Enabled = False
                TextBox2.Enabled = False
                TextBox3.Enabled = False
                Button5.Text = "off"
            End If

    如果我想,再按一下 Button,變下面的,應該如何??
     If Button5.Text = "off" Then
                TextBox1.Enabled = True
                TextBox2.Enabled = True
                TextBox3.Enabled = True
                Button5.Text = "open"
            End If

    我用過try 好像不行 ..



    • 已編輯 手指 2012年8月4日 下午 01:14
    2012年8月4日 下午 01:10
  • 這不知道是不是你要的功能。

    Public Class Form1
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            If Button1.Text = "open" Then
                TextBox1.Enabled = True
                TextBox2.Enabled = True
                TextBox3.Enabled = True
                Button1.Text = "OFF"
            ElseIf String.IsNullOrEmpty(TextBox1.Text) Or String.IsNullOrEmpty(TextBox2.Text) Or String.IsNullOrEmpty(TextBox3.Text) Then
                MsgBox("請輸入文字")
            Else
                TextBox1.Enabled = False
                TextBox2.Enabled = False
                TextBox3.Enabled = False
                Button1.Text = "open"
            End If
        End Sub

        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Button1.Text = "open"
            TextBox1.Enabled = False
            TextBox2.Enabled = False
            TextBox3.Enabled = False
        End Sub
    End Class

    要限制只能輸入數字話,咕狗"只能輸入數字"就有很多範例。
    [例如]


    Try...Catch.... 是一定抓不到這篇你覺得錯誤的地方的,Try...Catch.... 用來抓程式錯誤,不是抓邏輯錯誤喔。


    • 已編輯 C.Kevin 2012年8月6日 上午 04:01
    2012年8月6日 上午 03:50