gpt4 book ai didi

c# - 从配置文件 C# (WinForms) 激活/停用按钮

转载 作者:行者123 更新时间:2023-11-30 16:53:05 26 4
gpt4 key购买 nike

假设我的程序最多有 8 个按钮,我应该能够根据配置文件中的设置打开/关闭它们(可见/隐藏)。然后,我选择的按钮应该在两行(如果超过 4 个)或一行(cnt <= 4)中可见,在它们之间没有间隙。(我的意思是当 1,2,3,4 处于事件状态时,它们将是在第一行中,相同的 1、2、5、8 处于事件状态,因此 5 将取代按钮 3,而 8 将排在第四位)

<add key="butactive" value="1;3;4;8"/>
<add key="but1" value="START"/>
<add key="but2" value="END"/>
<add key="but3" value="PAUSE"/>
<add key="but4" value="RESET"/>
...

程序应该能够根据“butactive”键确定哪些按钮是可见的,然后更改它们的 Text 属性并添加同样从配置文件中获取的特定操作。

 private void Form2_Load(object sender, EventArgs e)
{
radButton1.Text = ConfigurationManager.AppSettings["but1"];
radButton2.Text = ConfigurationManager.AppSettings["but2"];
radButton3.Text = ConfigurationManager.AppSettings["but3"];
radButton4.Text = ConfigurationManager.AppSettings["but4"];
...
radButton1.Click += getAction(ConfigurationManager.AppSettings["but1a"]);
radButton2.Click += getAction(ConfigurationManager.AppSettings["but2a"]);
...
}

知道如何在加载表单时选择所需的按钮并将它们放置在所需的位置吗?

最佳答案

您可以使用 FlowLayoutPanel作为按钮的容器。如果你正确调整了它的大小,你需要做的就是设置按钮的可见性,它们会根据你的需要自行排列:

radButton1.Visible = (bool)ConfigurationManager.AppSettings["butactive1"];
radButton2.Visible = (boll)ConfigurationManager.AppSettings["butactive2"];
...

至于操作,您可以对所有按钮使用相同的事件处理程序,并根据按下的按钮和您定义的操作执行您需要的任何操作:

radButton1.Click += buttonClickHandler;
radButton2.Click += buttonClickHandler;

private void buttonClickHandler(object sender, EventArgs e)
{
var button = sender as Button;
var action = getAction(ConfigurationManager.AppSettings[button.Text + "a"];

//Execute whatever you want here based on action
}

关于c# - 从配置文件 C# (WinForms) 激活/停用按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31872639/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com