跳转至内容

从 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 → 
华夏公益教科书