嗨,我有一个小的 winforms 程序,很快就会发展成更多的东西。该程序有 2 个面板panel1
,panel2
这些面板由一些表单控件动态填充。第一个面板填充了组合框,第二个面板填充了按钮网格。我想要实现的是能够根据用户从combobox
. 网格的每一列代表一周中的combobox
一天,如果您愿意,可以通过从列表中选择它来禁用想要的一天。
静态地执行此操作很简单,但是我的程序很快就会扩展,以便它可以处理大型数据库,这就是我动态执行此操作的原因。基本上这就是我现在想简单地禁用右键的地方。
以下是我到目前为止的界面:
如果有任何帮助,这是我的代码:
public Form1()
{
InitializeComponent();
}
Button[] btn = new Button[2];
ComboBox[] cmb = new ComboBox[1];
private void Form1_Load(object sender, EventArgs e)
{
placeRows();
}
public void createColumns(int s)
{
for (int i = 0; i < btn.Length; ++i)
{
btn[i] = new Button();
btn[i].SetBounds(40 * i, s, 35, 35);
btn[i].Text = Convert.ToString(i);
panel1.Controls.Add(btn[i]);
}
for (int i = 0; i < cmb.Length; ++i)
{
cmb[i] = new ComboBox();
cmb[i].SelectedIndexChanged += new EventHandler(cmb_SelectedIndexChanged);
cmb[i].Text = "Disable";
cmb[i].Items.Add("Monday");
cmb[i].Items.Add("Tuesday");
cmb[i].SetBounds(40 * i, s, 70, 70);
panel2.Controls.Add(cmb[i]);
}
}
void cmb_SelectedIndexChanged(object sender, EventArgs e)
{
ComboBox senderCmb = (ComboBox)sender;
if (senderCmb.SelectedIndex == 1)
{
//MessageBox.Show("Tuesday");
btn[1].Enabled = false;
}
}
public void placeRows()
{
for (int i = 0; i < 80; i = i + 40)
{
createColumns(i);
}
}
}