0

このリストビューアイテム内のすべてのコントロールを無効にしたいのですが。このMSDNページには、EnabledがControlのクラスプロパティとして定義されていると記載されています。

foreach (Control ctrl in eItem.Controls)
{
    ctrl.Enabled = false;
}

「コントロールに有効の定義が含まれていません...」というエラーが発生します。すべてのコントロールをキャストした場合にのみ、エラーはなくなります。

foreach (Control ctrl in eItem.Controls)
{
    ((TextBox)ctrl).Enabled = false;
}

DropDownList、TextBox、Button、CheckBoxなどがあります。これを行うための最速で一般的な方法はありますか?

4

1 に答える 1

2

あなたが提供したリンクは、 Webフォームコントロールではなく、Windowsフォームコントロールについて説明しているため、誤解を招きました。Web Fromsでは、プロパティは、のサブクラスであり、のスーパークラスであるクラスで定義されます。したがって、次のことができます。EnabledWebControlControlTextBoxDropDownList

foreach (Control ctrl in eItem.Controls)
{
    WebControl webCtrl = ctrl as WebControl;
    if (webCtrl != null)
    {
        webCtrl.Enabled = false;
    }
}
于 2012-09-12T16:27:53.277 に答える