所以我有一个字典,里面有一些名为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});
它给了我这个错误:
'Control'不包含'Maximum'的定义,也没有扩展方法'Maximum'接受类型'Control'的第一个参数(你是否缺少using指令或汇编引用?)
我该如何解决这个问题?
答案 0 :(得分:1)
您应该将控件转换为 <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="50000000" />
</bean>
,然后为其属性指定值:
NumericUpDown
为什么
var numeric = (NumericUpDown)controlDict["amountNum" + i.ToString()]; numeric.Maximum = 100;
有效 没有铸造?
因为结果为controlDict["amountNum" + i.ToString()].Location
且控件类具有Control
属性。您的所有控件(包括Location
)都继承自NumericUpDown
。
词典的项目属于Control
。使用Control
从词典中获取项目时,结果类型为controlDict["key"]
。因此,您可以访问Control
类的所有属性。
当您知道结果控件是特定的控件类型时,要访问特定的控件属性,您应该将其转换为特定的控件类型。
答案 1 :(得分:1)
这是因为controlDict [“amountNum”+ i.ToString()]是Control实例。 试试这个:
false