我正在创建一个带有包含图像和文本的大按钮的菜单。选中后,按钮周围会出现边框。
按钮文本并不总是相同的,按钮单击的结果也不相同。
我在这样的结构中设置了图像名称和每个按钮的文本:(其中有四个,但我将显示 2 个)
struct ConfigDevSubmenu
{
public const string SubMenuBtnText1 = "";
public const string SubMenuBtnText2 = "text submenu 3 button 1";
public const string SubMenuBtnText3 = "text submenu 3 button 2";
public const string SubMenuBtnText4 = "";
public const string SubMenuBtnImg1 = null;
public const string SubMenuBtnImg2 = "Settings.png";
public const string SubMenuBtnImg3 = "LoadFirmware.png";
public const string SubMenuBtnImg4 = null;
public const string SubMenuBtnBorder1 = "Borderstyle.None";
public const string SubMenuBtnBorder2 = "Borderstyle.FixedSingle";
public const string SubMenuBtnBorder3 = "Borderstyle.FixedSingle";
public const string SubMenuBtnBorder4 = "Borderstyle.None";
}
struct AdvancedSubmenu
{
public const string SubMenuBtnText1 = "text submenu 4 button 1";
public const string SubMenuBtnText2 = "text submenu 4 button 2";
public const string SubMenuBtnText3 = "text submenu 4 button 3";
public const string SubMenuBtnText4 = "text submenu 4 button 4";
public const string SubMenuBtnImg1 = "GenerateEncKey.png";
public const string SubMenuBtnImg2 = "Monitoring.png";
public const string SubMenuBtnImg3 = "AdvancedSettings.png";
public const string SubMenuBtnImg4 = "GenerateConfigFile.png";
public const string SubMenuBtnBorder1 = "Borderstyle.FixedSingle";
public const string SubMenuBtnBorder2 = "Borderstyle.FixedSingle";
public const string SubMenuBtnBorder3 = "Borderstyle.FixedSingle";
public const string SubMenuBtnBorder4 = "Borderstyle.FixedSingle";
}
我认为如果不使用数据库文件,这不会更容易完成。
为了创建按钮,我有这个函数,它以它应该使用的结构作为参数,并且在 switch case 结构中创建了每个按钮。但是我发现自己在这些函数中复制粘贴了很多,所以这必须更容易。因此,我尝试了类似下面的方法,但这不起作用。我想知道是否有可能做到这一点,以及我应该如何做到这一点。
private void createButtons(string Struct)
{
for (int i = 1; i < 5; i++)
{
SubBtnText[i].Text = Struct.SubMenuBtnText[i];
pictureBoxSubBtn[i].Image = Image.FromFile(Struct.SubMenuBtnImg[i]);
panelSubBtn[i].BorderStyle = Struct.SubMenuBtnBorder[i];
}
}
有什么建议吗?