從 Zip/RadioButton 程式設計 Gambas

單選按鈕就像老式錄音機上的按鈕。當你按下其中一個時,其他的會彈起來。它們用於從多個選項中選擇一個。
如果你在一個表單中有一些單選按鈕,只有一個可以被選中。點選一個,其他的就會被取消選中。即使在程式碼中,如果你設定一個按鈕的選中狀態,其他按鈕也會自動取消選中。value 屬性(布林值)指示按鈕是否被選中。當你點選一個名為 rb1 的單選按鈕時,rb1.value = true 會自動發生。當你點選另一個按鈕時,rb1.value = false 會自動發生。
你可能需要兩組單選按鈕。為了將它們分開,在一個面板或其他容器中建立它們。首先將面板放在那裡,然後在其中建立單選按鈕,或者選擇所有你想要一起工作的按鈕,右鍵點選,然後選擇嵌入容器。
另一個技巧是讓它們共享事件。點選任何一個按鈕,只有一個_Click 事件會被觸發。這避免了為每個按鈕編寫單獨的_Click 處理程式。一個處理程式可以處理所有按鈕。但是,你怎麼知道哪個按鈕被點選了呢?你的處理程式可能想要根據選中的按鈕執行一些操作。這就是Last 出現的地方。Last 是最後發生事件或執行操作的物件。
有兩組按鈕,每組都在自己的面板中。rbRoad、rbSea 和 rbAir 在 Panel1 中。rbApple、rbOrange 和 rbPear 在 Panel2 中。面板是它們按鈕的父級。按鈕是它們的子級。
公路、海洋和空中按鈕的Group 屬性被設定為 rbTransport。就好像它們在扮演一個名為 rbTransport 的單選按鈕一樣。
蘋果、橙子和梨按鈕的Group 屬性被設定為 rbFruit。就好像它們是同一個單選按鈕 rbFruit 一樣。
雙擊一個運輸按鈕(任何一個)。你會發現自己正在為 rbTransport 組的按鈕編寫處理程式。同樣,雙擊一個水果按鈕,你會發現自己正在編寫一個 rbApple、rbOrange 和 rbPear 都響應的處理程式。
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 函式將方括號內的文字轉換為小寫。執行程式並點選按鈕。在下一節中,我們將為該程式新增儲存設定的功能。當我們關閉應用程式時,按鈕的任何狀態都將是下次應用程式執行時的恢復狀態。

