TLDR;寻找一种通过诸如此类的方式检索所有单选按钮的方法...(psudo)
List<RadioButton> btn = new List<RadioButton>;
btn = stackPanel.getAllRadioButtons()
我目前正在用C#构建一个小测验应用程序。我具有将所需的GUI元素添加到组框的功能。我想知道是否有任何方法可以遍历创建的元素(例如单选按钮)以查看已检查的元素。
这里是功能之一,以及如何将它们添加到窗口中。
private void tfQ(string questionBody)
{
StackPanel questionPanel = new StackPanel{Orientation = Orientation.Vertical};
questionPanel.Children.Add(new Label { Content = questionBody });
GroupBox group = new GroupBox();
RadioButton trueRadio = new RadioButton();
trueRadio.Content = "True";
RadioButton falseRadio = new RadioButton();
falseRadio.Content = "False";
questionPanel.Children.Add(trueRadio);
questionPanel.Children.Add(falseRadio);
group.Content = questionPanel;
mainStack.Children.Add(group);
}
构造函数:
public quiz()
{
tfQ("This is a true/false question");
Window w = new Window();
w.Content = mainStack;
w.Show();
}
我发现了许多以C#脚本格式执行操作的方法
(使用控制功能...)
var checkedButton = container.Controls.OfType<RadioButton>()
.FirstOrDefault(r => r.Checked);
但是我还没有找到一种“程序化”的方式。我已经考虑过将void tfQ的类型更改为StackPanel,但这只能帮助我更轻松地遍历堆栈面板,尽管这只能部分解决我的问题-可以让我更轻松地遍历StackPanel,但是我仍然不知道如何在面板上获取RadioButtons。
P.S我是C#的新手-具有Java / C / C ++ / Python的经验
答案 0 :(得分:0)
我利用以下代码将内容分别投射到新的groupbox和stackpanel中。
---
version: "3.4"
services:
zookeeper:
image: "confluentinc/cp-zookeeper:latest"
environment:
ZOOKEEPER_CLIENT_PORT: 2181
ZOOKEEPER_TICK_TIME: 2000
extra_hosts:
- "moby:127.0.0.1"
kafka:
image: "confluentinc/cp-kafka:latest"
environment:
KAFKA_BROKER_ID: 1
KAFKA_ZOOKEEPER_CONNECT: "zookeeper:2181"
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: "INSIDE:PLAINTEXT,OUTSIDE:PLAINTEXT"
KAFKA_INTER_BROKER_LISTENER_NAME: "INSIDE"
KAFKA_ADVERTISED_LISTENERS: "INSIDE://kafka:29092,OUTSIDE://localhost:50012"
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
KAFKA_AUTO_CREATE_TOPICS_ENABLE: "true"
ports:
- "50012:50012"
extra_hosts:
- "moby:127.0.0.1"
depends_on:
- zookeeper
这使我可以将内容投射到控件的本地副本中。可能不是最好的方法-老实说,我敢肯定这是非常低效的。解决了这个问题。