- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我试图强制用户在允许下一步移动之前选择一个 rabiobutton。我使“下一步”按钮不可见,但我有 10 个单选按钮,如果选中其中任何一个,则必须对其进行验证。根据定义,只能选中 1 个单选按钮。我的代码看起来像这样:
b1.Text = "Next";
b1.Parent = fpn1;
fpn1.Controls.Add(b1);
b1.Dock = DockStyle.Bottom;
b1.BackColor = Color.LightGray;
b1.Visible = false;
RadioButton rb;
while (b1.Visible == false)
{
MessageBox.Show("LOOOL");
//Thread.Sleep(5000);
rb = fpn1.Controls.OfType<RadioButton>()
.FirstOrDefault(r => r.Checked);
if (rb != null)
{
b1.Visible = true;
}
}
所以当我的单选按钮都没有被点击时,b1 是不可见的。问题是......这进入了无限循环。用户甚至无法再选择任何按钮,因为页面无法加载。有绕过的想法吗?
我还能做些什么来获得想要的结果?
最佳答案
无限循环非常擅长阻止应用程序执行任何操作。从本质上讲,您是在倒退地考虑它。你在想:
Keep making the button invisible until something happens.
为什么?一旦您使按钮不可见,它将保持不可见,直到您更改它。所以,相反,可以这样想:
Make the button visible when something happens.
在这种情况下,“发生某事”是指用户更改了单选按钮的值。所以你想要一个事件的处理程序:
private void radioButton_CheckedChanged(Object sender, EventArgs e)
{
// your logic here
}
您可以使用表单设计器将此函数分配给各种单选按钮的所有 CheckedChanged
事件,因此它们都使用相同的处理程序。
那么“你的逻辑”是什么?好吧,真的,这取决于你。 听起来您想等到几个不同的单选按钮组被选中?因此,您将基于此构建一些条件。在高层次上,这在语义上看起来像这样:
if (allRadioButtonsSelected())
b1.Visible = true;
如果您的代码行符合您的要求:
rb = fpn1.Controls.OfType<RadioButton>().FirstOrDefault(r => r.Checked)
然后你甚至可以使用它:
if (fpn1.Controls.OfType<RadioButton>().FirstOrDefault(r => r.Checked) != null)
b1.Visible = true;
尽管它并不完全听起来像您要查找的内容,因为它会告诉您是否只有一个 单选按钮被选中。但我可能误解了你的意思,所以这取决于你。
要点是,不要在检查是否发生某些事情时一直循环和阻塞线程。因为当你阻塞线程时,它永远不会发生。相反,使用事件处理程序在事件发生时对其做出响应。
关于c# - 在单击 RadioButton 之前保持按钮不可见 c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34516983/
我一直在尝试使用 RadioButton 将另一个 RadioButton 变为可见。我是这个环境的新手,这是我的第一个 Windows Phone 应用程序。我的代码: private void
我有一个 GroupBox 和一堆 RadioButtons。当他们有焦点时,我可以使用向上/向下键来遍历它们。 但是,当我手动更改已选中的 RadioButton 并按向上/向下键时,迭代将从更改已
使用 WPF 和 MVVM 模式,我得到了一个动态填充单选按钮的列表框。
我有一个带有四个单选按钮的 RadioGroup,我让它们使用 4 的权重和在屏幕上均匀地隔开它们。这很好用,但结果是图形左对齐,而不是在每个单选按钮的中心。有没有办法将图形移动到中心?我尝试了重力中
我有 3 个单选按钮,用于对 API 中的不同数据进行排序。在每个单选按钮上,如果我按另一个单选按钮,单选按钮值就会消失,如下所示: 和 。我尝试使用属性绑定(bind) [value],但这导致了错
假设我有几个单选按钮和一些自定义对象作为数据源。 举个例子 public enum SomeModeType { firstMode = 10, secondMode = 20,
我正在尝试设置对单选组中第一个单选按钮的选择。在深入探讨这个问题之前,我需要指出问题仅发生在 API <= 16 中。当在模拟器或真实设备中运行 API 17 或更高版本时,一切正常。 它应该做什么
对于android编程,我有一个RadioGroup,其中包含一些RadioButtons。我只想从按钮获取文本,而不需要获取 RadioButton 的 id。
我编写了以下脚本,一旦单击要取消选中的其他复选框,它的工作正常,但是一旦我单击 tabkey,它就不会被选中或取消选中,它只会获得焦点, 脚本 function toggle(obj) { i
我有一个单选组,我可以在其中以编程方式添加单选按钮。这一切都是在 onCreateView() 方法中完成的,因此每次从后台堆栈重新创建 fragment 时都应该重做。我遇到的问题是,当我在开始时使
假设我在 RadioButtonGroup 中有一些 RadioButton。我单击其中一个,我意识到我不应该提交表单,相反,我只想触发取消操作并返回到我未选择的原始状态。我该怎么做? 最佳答案 想通
在我的布局中,我有一个 AppCompatRadioButton。使用 app:buttonTint 我将按钮设置为白色。如果我检查了 AppCompatRadioButton,圆圈的填充颜色也是白色
我正在开始使用 JavaFX,并且我已经构建了一个小俄罗斯方 block 游戏。现在一切正常,但最后我决定添加一组单选按钮来选择难度 - 这里我遇到了一个问题:突然LEFT/RIGHT/UP/DOWN
我的 RadioGroup 中的 RadioButton 在我取消选中它们或单击组中的另一个 RadioButton 后留下一个黑色的选中圆圈。我该如何防止这种情况发生?
在每个场景中,我都有多个切换组,每个切换组有两个单选按钮。无论我首先选择哪个场景上的哪个 RadioButton,听众都不会明白。它仍然为空,而不是保存设置的用户数据。如果我按第二次,它就会起作用。
我有一个有 2 个字段的应用程序:company_name 和 logo,我在 Model 的 Form 中显示像单选按钮这样的公司,但我想显示 logo 公司而不是公司标签(公司名称) 任何的想法
所以我想在我的应用程序中添加一个计算器。用户将首先单击适用于英制和公制单位的 RadioButton,然后根据用户单击的单选按钮,将出现其中一种布局。 如您所知,英制单位有英尺和英寸,为此我需要两个
我正在开发一个订单应用程序。如果实际时间在开放时间,则应将 rdi_now 的可见性设置为可见,否则设置为消失,因此用户在关闭时间只有选择预购的选项,但 rdi_preorder 没有做应该做的事情。
我在尝试单击时检查和取消选中单选按钮时遇到了一些问题。 我想做的是,当加载 Activity 时,单选按钮默认设置为选中。当用户按下选中的单选按钮时,我将单选按钮设置为取消选中并清空 TextView
我有三个单选按钮,我希望根据我单击的复选框上传我的 GUI。 我引用过本指南:http://docs.oracle.com/javafx/2/ui_controls/radio-button.htm这
我是一名优秀的程序员,十分优秀!