ComboBox的SelectedItem不会在c#WinForms中更新

时间:2016-11-23 08:00:21

标签: c# winforms combobox

我有一个WinForms项目,其中我动态在用户控件的初始化方法中添加一个ComboBox(意味着我无法在设计器中访问它)。每次通过响应表单中的activate事件激活用户控件所在的表单时,都会执行该初始化方法。我将ComboBox存储在用户控件的列表中,以便稍后引用。当我按下表单上的“更新”按钮时,我在用户控件上执行一个方法,在那里我从我在ComboBox中读取SelectedItem,该ComboBox位于Initialize方法中保存的List中。

但是,这仅在我第一次按“更新”按钮时才能正常工作。当我在ComboBox中选择一个不同的值并再次按下该按钮时,我可以在调试器中看到SelectedItem属性没有更新并且仍然是以前的值。

我错过了什么?

我如何在运行时添加我的ComboBox (在我的用户控件的Initialize方法中,每次激活表单时执行)

ComboBox c_options = new ComboBox();
c_options.AutoSize = true;
c_options.Location = new Point(c_standard_label.Bounds.Right + spacing, c_standard_label.Bounds.Top);
c_options.Font = new Font("Arial", 10F, FontStyle.Regular);
c_options.DropDownStyle = ComboBoxStyle.DropDownList;
c_options.Size = new Size(c_options_panel.Width - (c_standard_label.Bounds.Right + spacing), spacing);
var bindingSource1 = new BindingSource();
bindingSource1.DataSource = _view.ComplianceOptions[i];
c_options.DataSource = bindingSource1.DataSource;
c_options_panel.Controls.Add(c_options);
// this is the list in which I store the combobox
ComplianceThresholds.Add(c_options);

我如何读取SelectedItem (在我的用户控件的Update方法中,在按下窗体上的“更新”按钮时执行)

public void UpdateAnalysisParameters(object sender, EventArgs e)
{
    var temp2 = new List<string>();
    foreach (var i in ComplianceThresholds)
    {
        // here I check the selected item, which is always the same.
        temp2.Add(i.SelectedItem.ToString());
    }
    _view.SelectedComplianceThresholds = temp2;
}

0 个答案:

没有答案