【发布时间】:2016-09-22 14:28:16
【问题描述】:
我有一个循环,当鼠标悬停在按钮上时,它会递增并显示递增数。每个按钮的值都存储在app.config 文件中。如何使用递增的值来显示正确的值名称?
当前代码
public void Controls()
{
for (int i = 1; i <= Applications; i++)
{
string iconPath = ConfigurationManager.AppSettings["Application"+i+"_Icon"];
Button button = new Button();
this.Controls.Add(button);
top += button.Height+25;
button.Tag = i;
button.MouseHover += Button_MouseHover;
button.MouseLeave += Button_MouseLeave;
button.Visible = true;
button.Click += new EventHandler(button_Click);
}
app.config:
<appSettings>
<add key="Applications" value="3" />
<add key="Catergory" value="1"/>
<add key="Application1_Name" value="word"/>
<add key="Application1_Executable_Name" value="word.exe"/>
<add key="Application1_AutoClose" value="true"/>
<add key="Application1_Icon" value="C:\pictures\images.png"/>
<add key="Catergory" value="1"/>
<add key="Application2_Name" value="Paint"/>
<add key="Application2_Executable_Path" value="C:\Windows\System32\"/>
<add key="Application2_AutoClose" value="true"/>
<add key="Application2_Icon" value="C:\pictures\images.png"/>
<add key="Catergory" value="1"/>
<add key="Application3_Name" value="notepad"/>
<add key="Application3_Executable_Path" value="C:\Windows\"/>
<add key="Application3_AutoClose" value="true"/>
<add key="Application3_Icon" value="C:\pictures\images.png"/>
</appSettings>
目前,当我将鼠标悬停在按钮上时,它会显示值 1、2、3,但我希望它显示记事本、Word、Paint。
我尝试了什么
public void Controls()
{
for (int i = 1; i <= Applications; i++)
{
NameValueCollection sAll;
sAll = ConfigurationManager.AppSettings;
Button button = new Button();
this.Controls.Add(button);
top += button.Height+25;
button.Tag = i;
foreach(string s in sAll.AllKeys)
{
button.Text = s + i ;
}
}
}
它的作用是向我显示 1,2,3 并为所有内容显示绘画。
【问题讨论】:
-
您的所有密钥都命名为 Application1_Name?它们不应该是 Application1_Name、Application2_Name 和 Application3_Name
-
是的,很抱歉就是这样,没有注意到我没有改变它,我很抱歉。我已经更新了我的问题
-
您想在按钮上打印什么 - “Application1_Name”或“记事本”?
-
必须显示记事本
-
您的 app.config 错误,您有这么多键,您能告诉我您想在按钮上显示什么吗?
标签: c# app-config