从 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 函数将方括号内的文本转换为小写。运行程序并点击按钮。在下一节中,我们将为该程序添加保存设置的功能。当我们关闭应用程序时,按钮的任何状态都将是下次应用程序运行时的恢复状态。