【问题标题】:How to Disable radio button in listview如何在列表视图中禁用单选按钮
【发布时间】:2012-07-17 07:26:33
【问题描述】:

我是一个非常菜鸟,这是我的第一篇文章,所以需要你的帮助 当我选中一个复选框时,试图禁用列表视图中的所有单选按钮控件 它只适用于一行。

这是我的代码:

protected void chkb_DG_NO_CheckedChanged(object sender, EventArgs e)
        {


                    foreach (ListViewItem item in ListView1.Items)
                    {
                        RadioButton RD1 = (RadioButton)ListView1.Items[0].FindControl("R1");
                        RadioButton RD2 = (RadioButton)ListView1.Items[0].FindControl("R2");
                        RadioButton RD3 = (RadioButton)ListView1.Items[0].FindControl("R3");
                        RadioButton RD4 = (RadioButton)ListView1.Items[0].FindControl("R4");
                        RadioButton LD1 = (RadioButton)ListView1.Items[0].FindControl("L1");
                        RadioButton LD2 = (RadioButton)ListView1.Items[0].FindControl("L2");
                        RadioButton LD3 = (RadioButton)ListView1.Items[0].FindControl("L3");
                        RadioButton LD4 = (RadioButton)ListView1.Items[0].FindControl("L4");
                        RD1.Enabled = false;
                        RD2.Enabled = false;
                        RD3.Enabled = false;
                        RD4.Enabled = false;
                        LD1.Enabled = false;
                        LD2.Enabled = false;
                        LD3.Enabled = false;
                        LD4.Enabled = false;
                    }

        }

我应该改变什么?

【问题讨论】:

    标签: c# winforms listview radio-button


    【解决方案1】:

    我假设您使用的是 Windows 窗体。将所有 RadioButtons 放在一个容器中,例如 Panel 或 GroupBox。然后,您所有的 RadioButtons 将被组合在一起。一切都在this MSDN page上解释。

    完成此任务后,遍历该组的控件,并禁用每个控件,使用如下伪代码:

    foreach (RadioButton rButton in groupBox) {
                    rButton.Enabled = this.Enabled;
    }
    

    或者,只需输入以下代码:

    groupBox.Enabled = false;
    

    禁用组框和其中的所有控件。

    【讨论】:

    • 为什么不直接禁用 GroupBox?
    • 我正在使用 asp.net 我想重复一个有 2 组单选框的区域,我没有使用中继器控件,而是使用了列表视图控件,并且效果很好,现在我有一行,每行有 8 个单选按钮(2 组)和一个复选框,我想编写禁用所有行控件(包括单选按钮)的命令,正如我所说......使用上面的代码我可以只禁用一行,当我选中第二行复选框时,第一行的单选按钮被禁用。我知道造成这种情况的原因,这是因为我在代码中使用 [0] 仅适用于第一行。
    • @user1503894 我不明白你为什么没有在你的问题中添加这些信息。也许我会回答得更好。
    • 无论如何,我不明白你的代码中 for-each 循环的原因,没有使用通用的“项目”。我不是很明白你的界面描述,但是你为什么不尝试选择每一行并禁用该行的每一组?
    【解决方案2】:

    RadioButton 单独工作。将 RadioGroup 设置为父级,只设置一个 RadioButton 处于活动状态。

    【讨论】:

      猜你喜欢
      • 2014-03-07
      • 1970-01-01
      • 2016-06-17
      • 2018-09-19
      • 2014-06-19
      • 2017-05-31
      • 1970-01-01
      • 1970-01-01
      • 2020-01-11
      相关资源
      最近更新 更多