こんにちは、すぐに何かに発展する小さなwinformsプログラムがあります。プログラムには 2 つのパネルがpanel1
あり、panel2
これらのパネルにはいくつかのフォーム コントロールが動的に取り込まれます。最初のパネルにはコンボ ボックスが表示され、2 番目のパネルにはボタンのグリッドが表示されます。私が達成したいのは、ユーザーがから選択したものに応じて、右のボタンを無効にできるようにすること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);
}
}
}