我已经创建了一个控件数组:
public static string[] ldcNames = new string[16] {"ledIndicator0", "ledIndicator1", "ledIndicator2", "ledIndicator3", "ledIndicator4", "ledIndicator5", "ledIndicator6", "ledIndicator7", "ledIndicator8", "ledIndicator9", "ledIndicator10", "ledIndicator11", "ledIndicator12", "ledIndicator13", "ledIndicator14", "ledIndicator15"};
在我创建的其他通用Winform控件数组中,我可以访问控件的属性。以上数组为TA.Winforms.Controls
包中的leindicators数组。
我以这种方式访问其他控件:
var lbl1 = this.Controls[Global.lblNames[rangeLabel]];` and `lbl1.Text = "xxxxx"
这工作完美。尝试对leindicator控件执行相同操作将导致以下错误:(Where "Cadence"在VS IDE
中以红色弯弯曲曲的线下划线。var ld1 = this.Controls[Global.ldcNames[rowNum]];
ld1.Cadence = CadencePattern.SteadyOn;
错误CS1061"控制"不包含"节奏"和的定义没有可访问的扩展方法"Cadence"接受第一个参数
我可以访问标准属性,但不能访问这个控件的任何扩展或唯一属性。
完全迷路了,迫切需要帮助。提前谢谢。
正如其他人所说,您需要将控件CAST为正确的类型,在您的示例中为LedIndicator
:
LedIndicator ld1 = (LedIndicator)this.Controls[Global.ldcNames[rowNum]];
ld1.Cadence = CadencePattern.SteadyOn;
也可以使用as
关键字:
LedIndicator ld1 = this.Controls[Global.ldcNames[rowNum]] as LedIndicator;
ld1.Cadence = CadencePattern.SteadyOn;