跳轉至內容

從 Zip/RadioButton 程式設計 Gambas

來自華夏公益教科書,開放世界開放書籍

單選按鈕和組

[編輯 | 編輯原始碼]
單選按鈕——一個按下,其他彈出

單選按鈕就像老式錄音機上的按鈕。當你按下其中一個時,其他的會彈起來。它們用於從多個選項中選擇一個。

如果你在一個表單中有一些單選按鈕,只有一個可以被選中。點選一個,其他的就會被取消選中。即使在程式碼中,如果你設定一個按鈕的選中狀態,其他按鈕也會自動取消選中。value 屬性(布林值)指示按鈕是否被選中。當你點選一個名為 rb1 的單選按鈕時,rb1.value = true 會自動發生。當你點選另一個按鈕時,rb1.value = false 會自動發生。

你可能需要兩組單選按鈕。為了將它們分開,在一個面板或其他容器中建立它們。首先將面板放在那裡,然後在其中建立單選按鈕,或者選擇所有你想要一起工作的按鈕,右鍵點選,然後選擇嵌入容器

另一個技巧是讓它們共享事件。點選任何一個按鈕,只有一個_Click 事件會被觸發。這避免了為每個按鈕編寫單獨的_Click 處理程式。一個處理程式可以處理所有按鈕。但是,你怎麼知道哪個按鈕被點選了呢?你的處理程式可能想要根據選中的按鈕執行一些操作。這就是Last 出現的地方。Last 是最後發生事件或執行操作的物件。

Radio Buttons in Gambas Radio Buttons in Gambas, running

有兩組按鈕,每組都在自己的面板中。rbRoadrbSearbAirPanel1 中。rbApplerbOrangerbPearPanel2 中。面板是它們按鈕的父級。按鈕是它們的子級

公路、海洋和空中按鈕的Group 屬性被設定為 rbTransport。就好像它們在扮演一個名為 rbTransport 的單選按鈕一樣。

蘋果、橙子和梨按鈕的Group 屬性被設定為 rbFruit。就好像它們是同一個單選按鈕 rbFruit 一樣。

雙擊一個運輸按鈕(任何一個)。你會發現自己正在為 rbTransport 組的按鈕編寫處理程式。同樣,雙擊一個水果按鈕,你會發現自己正在編寫一個 rbApplerbOrangerbPear 都響應的處理程式。

Public Sub rbTransport_Click()
  Message("You choose to travel by " & Last.text)
End

Public Sub rbFruit_Click()
  Message("I like " & LCase(Last.text) & "s too!")
End

LCase 函式將方括號內的文字轉換為小寫。執行程式並點選按鈕。在下一節中,我們將為該程式新增儲存設定的功能。當我們關閉應用程式時,按鈕的任何狀態都將是下次應用程式執行時的恢復狀態。

從 Zip 程式設計 Gambas
 ← Ascii 單選按鈕 SaveSettings → 
華夏公益教科書