如何让一个类在c#中隐藏表单中的控件

时间:2013-08-18 03:56:21

标签: c# class controls visible

我有一个名为btnBeverage的按钮,3个numericupdown,3个组合框和3个文本框。现在,我创建了一个类来使控件可见或不可见。例如,如果我单击btnBeverage,则应显示/隐藏3个数字组合,3个组合框和3个文本框。但是当我把我的代码放在像numericupdown.Show()这样的类中时,它无法识别我的表单中的任何控件。我怎么连接它?

CLASS:

    public void visibile()
    {
         numericupdown.Show(); //this has error because it does not recognize any numericupdown control.
    }

2 个答案:

答案 0 :(得分:1)

您是为了显示/隐藏某些控件而创建一个完整的类?您可以改用这些方法:

    public static void ShowControl(Control c)
    {
        c.Show();
    }

    public static void HideControl(Control c)
    {
        c.Hide();
    }

或者,如果你想把它放在一个全新的课程中(我不推荐)

public static class ControlsUtility
{
    public static void ShowControl(Control c)
    {
        c.Show();
    }

    public static void HideControl(Control c)
    {
        c.Hide();
    }
}

希望有所帮助。

答案 1 :(得分:0)

为什么不使用jQuery在客户端进行?从您的示例中可以看出,没有理由在服务器端执行此操作。在客户端进行操作允许您进行动态控制,并且不需要仅仅为了显示或隐藏控件而回发到服务器。你甚至可以轻松获得一些不错的效果。您只需修改附加到所有控件的类即可。我把一个样本放在一起,我认为下面是非常明显的。它允许您显示和隐藏您使用“饮料”类标记的任何项目,只需简短的功能。
http://jsfiddle.net/dMJds/3/

这是代码:

<script>
    function hideBeverages() {
        $('.beverage').fadeOut(2000);
    };

    function showBeverages() {
        $('.beverage').fadeIn(2000);
    };
</script>

<form>
    <button id="hideBevs" type="button" onclick="hideBeverages()">Hide Beverages</button>
    <button id="showBevs" type="button" onclick="showBeverages()">Show Beverages</button>

    <hr />
    <div class="beverage">
        <h4>Beverage Order</h4>
        <input id="qtyMilk" type="text" /><label for="qtyMilk">Milk</label><br />
        <input id="qtyCoffee" type="text" /><label for="qtyMilk">Coffee</label>
    </div>

    <div>
        <h4>Foods</h4>
        <ul>
            <li class="beverage">Tea</li>
            <li class="produce">Apples</li>
            <li class="beverage">Water</li>
            <li class="produce">Oranges</li>
        </ul>
    </div>
</form>