重新广播现有控件

本文关键字:控件 广播 新广播 | 更新日期: 2023-09-27 18:21:33

是否有方法重铸现有控件?

例如,如果我们向上循环控制树,直到我们找到bob类型的控制(显然这里没有对无限循环进行任何检查):

Control parentCtrl = this.parent;
do
(
   if(parentCtrl.getType == typeof(bob)) { break; }
   else { parentCtrl = parentCtrl.parent; }
) while (true)
// This is the bit...?
bob parentCtrl = (bob)parentCtrl; // <-- will not compile as `parentCtrl` has been defined already

我知道我可以做((bob)parentCtrl).ctrlSpecificAttribute = "whatever dude...";,但我很懒,我想保存一些括号和按键。

唯一的解决方案是拥有单独的目标控件吗?

bob targetCtrl = (bob)parentCtrl;

重新广播现有控件

"唯一的解决方案是单独控制目标吗?"

是的,因为不是每个Control都是Bob

如果我使用varparentCtrl,然后重新生成它呢?或者有将两个对象用于同样的事情?

var不是dynamic,所以我不确定你想怎么做。但是,对于bobcontrols,最好使用不同的变量。