私の記憶が正しければ、チェックボックスがオフのときに [有効なプロパティを使用して] パネルを無効にすると、パネル内の項目が無効になります。その後、パネル内のすべてのアイテムを個別に無効にする必要はありません。同様に、パネルを再度有効にすると、子コントロールが再度有効になります。
myPanel.Enabled = false; //Child controls disabled
myPanel.Enabled = true; //Child controls enabled
以下を使用して、パネル内の各コントロールを繰り返すこともできます。
foreach(Control control in myPanel)
{
//Assume for the purpose of demonstration
//that each control within myPanel has an
//"Enabled" property
control.Enabled = myPanel.Enabled;
}
これにより、パネル内の各コントロールの有効なプロパティがパネルのプロパティと一致するように設定されます。実際には、これは要件を超えているため、実際には望ましくありません。このメソッドは、デモンストレーション目的で提供しただけです。
編集:これは、パネルのコントロールコレクションを公開するためにユーザーコントロールにプロパティを追加できるユーザーコントロールのRobの設計によって[たとえば]拡張できます。
public Control[] Controls
{
return controlPanel.Controls;
}
これにより、ユーザー コントロールの外部からコントロールのパネル コントロールを変更できるようになり、ユーザー コントロール内のパネル定義でコントロールを割り当てる必要がなくなります。