3

ユーザーが特定の入力を選択してデータを処理できる、かなり単純なアプリケーションを作成しています。ユーザーがコンボ ボックスの 1 つから特定の文字列を選択すると、他のコントロールが無効にならないという問題があります。基本的に、ユーザーがコンボボックスを選択して「開始」を選択すると、他のすべてのコントロールが無効になります。

private void cbalpha_SelectedIndexChanged(object sender, EventArgs e)
{
    var operatorcheckbox = (CheckBox)sender;
    foreach (Control cb in this.Controls)
        if ((StringtDataChoiceorSelect.SelectedItem != "(Initiate)")
        {
            continue;
        }
        else
        {
            cb.Enabled = operatorcheckbox.Checked;
        }
}
4

4 に答える 4

0

試す

    private void cbalpha_SelectedIndexChanged(object sender, EventArgs e)
    {
        var operatorcheckbox =(CheckBox)sender;
        foreach (Control cb in this.Controls)
        {
           if ((StringtDataChoiceorSelect.SelectedItem != "(Initiate)")
           {
               if(!cb.Enabled)
               {
                  cb.Enabled = true;
               }
           }
           else
           {
               cb.Enabled = false;
           }
        }
    }
于 2013-07-31T11:45:30.827 に答える
0

すべてのコントロールを無効にしたい場合、チェックボックスの値を使用して無効にするのはなぜですか。単純にこれでいい

private void cbalpha_SelectedIndexChanged(object sender, EventArgs e)
    {

        bool isEnabled = string.Compare(StringtDataChoiceorSelect.SelectedItem.ToString(),"(Initiate)",StringComparison.OrdinalIgnoreCase) == 0;
        foreach (Control cb in this.Controls)
            cb.Enabled = !isEnabled ;

    }
于 2013-07-31T11:49:04.603 に答える
0

SelectedIndexChanged イベントで、選択したオブジェクトが他のコントロールを無効にするものと同じかどうかを確認してから無効にします。

protected void ddltext_SelectedIndexChanged(object sender, EventArgs e)
{
    if (ddlPerc.SelectedValue.Equals("0.01"))
    {
        txtbox.Enabled = false;
    }
}
于 2013-07-31T11:51:08.370 に答える