我有一个C#Win表单。
主菜单表格
每个按钮都会打开一个新的胜利表格。 单击“设置”按钮后,将打开“安装”表单。 此表单将使用datagridview列出主菜单中除设置按钮以外的所有按钮。
管理员可以单击复选框以选择在主菜单中启用哪个按钮
任何人都知道如何实现此实现
我在安装表单中的部分代码
foreach (Button button in ????.Controls.OfType<Button>())
{
if (!button.Text.Contains("Setup"))
{
int index = dgvCheckbox.Rows.Add();
dgvCheckbox.Rows[index].Cells["Selected"].Value = 0;
dgvCheckbox.Rows[index].Cells["Button"].Value = button.Text;
}
}
如果我使用
MainMenu mainMenu = new MainMenu
foreach (Button button in mainMenu.Controls.OfType<Button>())
会出现问题,因为主菜单已经打开
答案 0 :(得分:0)
我在show form之前创建了CheckBox(而不是菜单),因此您可以以相同的方式填充菜单(此代码在主窗体上):
private void buttonSetup_Click(object sender, EventArgs e) {
using (var adminForm = new AdminForm()) {
foreach (var button in Controls.OfType<Button>().Where(bt => !bt.Text.Contains("Setup"))) {
adminForm.Controls.Add(new CheckBox {
Text = button.Text,
Location = button.Location
});
}
adminForm.ShowDialog();
}
}