在字典

时间:2016-03-17 09:58:52

标签: c# winforms dictionary controls

所以我有一个字典,里面有一些名为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指令或汇编引用?)

我该如何解决这个问题?

2 个答案:

答案 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