none
關於自動更新form的問題... RRS feed

  • 問題

  • 大大好,我想請問一下

    我們一般在寫Windows Form的時候

    要怎麼要讓他自動更新button是否enable?

    有沒有內建的函式可以使用?

    例如使用者還沒有開啟圖檔不能按某些按紐

    但是如果開了之後就可以按,我不想要寫死的在程式裡

    希望他在背後有一個常駐的副函式在自動更新按紐是否可以按

    不知道各位大大有什麼好的解法?

    2010年3月21日 下午 06:46

解答

  • 正確來說, 無論如何你都會要動到該控制項所存在的Form的內部程式, (小歐說的那種除外), 問題只差在多寫或少寫幾行而已

    寫程式有時沒法這樣偷懶的,使用不當的寫法少寫幾行程式, 帶來的麻煩可能會比你想像中的多.


    MSDN 文件庫很重要
    問題本身越具體, 越容易得到大家的回應
    回應幫助你的人是一種禮貌, 良好的禮貌有助於激發大家對你問題回應的熱情
    2010年3月22日 上午 01:50
    版主

所有回覆

  • 一般常見作法

    在 Form_Load 時,將您不能按的按鈕或控制項 Enabled = False

    開啟圖片的部分,例如您是使用 OpenFileDialog 控制項,您可以用 If 判斷式判斷是否開啟圖片

    假如開啟了,再將不能按的按鈕或控制項 Enalbed = True

     

    假如您想要有個副程式去偵測,您可以透過 Timer 或者偵測 Form 內控制項是否改變

    當有改變時再去作 If 判斷(例如圖片是否開啟),再將控制項 Enabled 設為 True or False

     

    附註:假如使用副程式處理,可能要考慮即時性問題

     


    歡迎參觀我的Blog.NET菜鳥自救會
    2010年3月22日 上午 01:08
  • 正確來說, 無論如何你都會要動到該控制項所存在的Form的內部程式, (小歐說的那種除外), 問題只差在多寫或少寫幾行而已

    寫程式有時沒法這樣偷懶的,使用不當的寫法少寫幾行程式, 帶來的麻煩可能會比你想像中的多.


    MSDN 文件庫很重要
    問題本身越具體, 越容易得到大家的回應
    回應幫助你的人是一種禮貌, 良好的禮貌有助於激發大家對你問題回應的熱情
    2010年3月22日 上午 01:50
    版主
  • 所以有像BCB裡面那種UpdateActions的事件函式嗎?

    因為windows form裡面有好多事件我都看不懂

    所以想確認一下~

     

    不過小歐所講的好像不錯,但是設Timer會不會讓程式太過吃資源?

    2010年3月22日 上午 05:19
  • Hi!

    您可以試試看在 Form1_Paint 重繪表單時去作

    http://msdn.microsoft.com/zh-tw/library/system.windows.forms.control.paint.aspx

    但萬一您的控制項狀態改變,但是沒有重繪時就抓不到了

     

    P.S. 聽 BillChung 的建議比較好


    歡迎參觀我的Blog.NET菜鳥自救會
    2010年3月22日 上午 05:44
  • 嗯嗯,了解。

    謝謝大大無私的分享~

    2010年3月22日 上午 05:45