ToolStripMenuItem
和基本类型Control
都包含属性Enabled
。
我需要将两种类型都传递给EnableItems(multipleItems);
之类的函数,但是我找不到包含Enabled
属性的通用基数。Label
或LinkLabel
从Control
继承(通常是我要从“未启用”切换为“启用”的类型)。
有什么方法可以使用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/