我创建了一个控件数组:
public static string[] ldcNames = new string[16] {"ledIndicator0", "ledIndicator1", "ledIndicator2", "ledIndicator3", "ledIndicator4", "ledIndicator5", "ledIndicator6", "ledIndicator7", "ledIndicator8", "ledIndicator9", "ledIndicator10", "ledIndicator11", "ledIndicator12", "ledIndicator13", "ledIndicator14", "ledIndicator15"};
在我制作的其他通用Winform控件数组中,我可以访问控件的属性。上面的Array是来自TA.Winforms.Controls
包的LedIndicators数组。
我以这种方式访问其他控件:
var lbl1 = this.Controls[Global.lblNames[rangeLabel]];` and `lbl1.Text = "xxxxx"
这样做效果很好。尝试对LedIndicator控件执行相同的操作会导致以下错误:(在VS IDE中,“Cadence”带有红色波浪线下划线
var ld1 = this.Controls[Global.ldcNames[rowNum]];
ld1.Cadence = CadencePattern.SteadyOn;
错误CS1061“Control”不包含“Cadence”的定义,并且找不到接受“Control”类型的第一个参数的可访问扩展方法“Cadence”。
我可以访问标准属性,但无法访问此控件的任何扩展或唯一属性。
在这里完全迷路了,急需帮助。提前感谢。
1条答案
按热度按时间hsgswve41#
正如其他人所述,您需要将控件强制转换为正确的类型,在您的示例中为
LedIndicator
:您也可以使用
as
保留字: