在DomainUpDown Control的表单开始上设置默认值

时间:2011-11-28 08:55:59

标签: c# winforms controls

我的winforms应用程序中有一些DomainUpDown控件。我无法在启动时找到为它们设置默认值的选项。有没有办法做到这一点?

目前,我有一个这样的枚举类型:

public enum ComparisonMode {Settings, Readings};

我已将每个DomainUpDown控件的SelectedItemChanged事件设置为以下内容:

private ComparisonMode ComparisonA; //enum to hold state of upDownA

private void upDownA_SelectedItemChanged(object sender, EventArgs e)
{
    switch (upDownA.Text)
    {
        case "Settings":
            ComparisonA = ComparisonMode.Settings;
            break;

        case "Readings":
           ComparisonA = ComparisonMode.Readings;
            break;
    }
}

当我启动应用程序时,所有domainupdown控件都没有选择任何内容,因此用户必须将每个控件设置为Settings或Readings才能开始使用该应用程序。

如何为所有这些设置默认值(例如)(读数)?我正在考虑循环控件(因为它们位于TableLayoutPanel内)。

到目前为止,我想出了这个想法,似乎有效:

    foreach (TableLayoutPanel tlp in tableCriterias.Controls)
    {
        foreach (Control ctrl in tlp.Controls)
        {
            var dud = ctrl as DomainUpDown;                

            if (dud != null)
            {
                dud.DownButton(); dud.DownButton();
                //Going down 2 times to select default value
            }
        }
    }

我在我的表单的Load事件中进行了上述循环,但由于我喜欢100个这些UpDown控件,因此它在开始时一切都非常慢。

1 个答案:

答案 0 :(得分:2)

无需执行此操作,您可以像这样设置SelectedIndex:

    DomainUpDown dd = new DomainUpDown();
    dd.Items.Add("settings");
    dd.Items.Add("Reading");
    dd.SelectedIndex = 0; // this will make sure you get the first item selected