控件不包含控件数组中"xxx"的定义



我已经创建了一个控件数组:

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;

最新更新