我的应用程序有一个主窗体,有10个用户可配置的按钮。 我有另一种形式来配置这10个按钮动作。
配置这10个按钮的最佳方法是什么? 目前,我将10个按钮作为List传递给第二个表单,并将它们链接到相应的组合框标签。 问题是如果将来某个时候我决定添加一个按钮或重新排列它们,我将不得不重写代码。有人知道更好的方法吗?
private readonly List<PictureBox> pictureBoxes;
private readonly List<ComboBox> comboBoxes;
public Shortcut_Buttons (List<string> stringsList, List<Button> sButtons)
{
InitializeComponent();
pictureBoxes = Controls.OfType<PictureBox>().ToList();
comboBoxes = Controls.OfType<ComboBox>().ToList();
if (pictureBoxes.Count != sButtons.Count)
throw new ArgumentException("Not enough Buttons/Pictureboxes.");
int i = 0;
foreach (var pictureBox in pictureBoxes)
{
pictureBox.BackgroundImage = sButtons[i++].BackgroundImage;
}
i = 0;
foreach (var comboBox in comboBoxes)
{
comboBox.DataSource = stringsList;
comboBox.Tag = sButtons[i++];
comboBox.SelectedIndexChanged += SetShortcutButton;
}
}
答案 0 :(得分:0)
通过获取实例直接访问表单? 像:
private static MainForm _this = null;
public static MainForm Instance { get { return _this; } }
public MainForm()
{
_this = this;
...
}
同时在另一个地方:
... MainForm.Instace.somePublicComponents