[英]Define maximum for NumerictUpDown in a dictionary
所以我有一本字典,里面有一些叫做controlDict
控件。 但是,如果我想像這樣設置NumericUpDown控件的最大值:
controlDict.Add("amountNum" + i.ToString(), new NumericUpDown());
controlDict["amountNum" + i.ToString()].Location = new Point(60, 42);
controlDict["amountNum" + i.ToString()].Maximum = new decimal(new int[] {
-1,
-1,
-1,
0});
它給了我這個錯誤:
“控件”不包含“最大”的定義,找不到可以接受類型為“控件”的第一個參數的擴展方法“最大”(您是否缺少using指令或程序集引用?)
我該如何解決?
您應該將控件轉換為NumericUpDown
然后為其屬性分配值:
var numeric = (NumericUpDown)controlDict["amountNum" + i.ToString()];
numeric.Maximum = 100;
為什么
controlDict["amountNum" + i.ToString()].Location
無需轉換即可工作?
因為結果是Control
,並且控件類具有Location
屬性。 以及所有控件,包括從Control
繼承的NumericUpDown
。
字典中的項目屬於Control
類型。 當您使用controlDict["key"]
從字典中獲取一項時,結果為Control
類型。 因此,您可以訪問Control
類的所有屬性。 當您知道結果控件是特定控件類型時,要訪問特定控件屬性,應將其強制轉換為特定控件類型。
這是因為controlDict [“ amountNum” + i.ToString()]是Control實例。 嘗試這個:
(controlDict["amountNum" + i.ToString()] as NumericUpDown).Maximum = new decimal(new int[] {
-1,
-1,
-1,
0});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.