ToolStripMenuItem和基本类型Control都包含属性Enabled

我需要将两种类型都传递给EnableItems(multipleItems);之类的函数,但是我找不到包含Enabled属性的通用基数。

LabelLinkLabelControl继承(通常是我要从“未启用”切换为“启用”的类型)。

有什么方法可以使用C#中的开箱即用功能吗?

最佳答案

使用动态类型。它使您可以使编译器信任您。如果您滥用它,它可以提供运行时例外,但是如果您小心一点,就没有问题。

    public static  void Enable(List<object> ctrs, bool enable)
    {
        foreach (var ctr in ctrs)
        {
            dynamic a=ctr;
            a.Enabled = enable;
        }
    }


将您想要启用或禁用的内容传递给llist。如果没有enable属性,它将在运行时崩溃,因此请当心

关于c# - ToolStripMenuItem和控件的共享库?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37270077/

10-09 14:02