从父表单启用按钮

时间:2015-07-28 07:31:54

标签: c# .net winforms datagridview

我有一个C#Win表单。

主菜单表格

  1. 按钮A
  2. 按钮B
  3. 按钮C
  4. 按钮设置
  5. 每个按钮都会打开一个新的胜利表格。 单击“设置”按钮后,将打开“安装”表单。 此表单将使用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>())
    

    会出现问题,因为主菜单已经打开

1 个答案:

答案 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();
        }
    }