2012-07-16 47 views
8

我希望我的应用程序能够获取组合框的值,然后设置用户选择的值或以某种方式获取之前选定的值。获取组合框的先前值

问题是,在我的表单中,有四个列表和一个ComboBox(其中包含列表中的所有值),我想将ComboBox的值重新填充到从中取出的列表中,然后删除从其他/相同列表中新选择的项目。

回答

16

您想处理ComboBox.Enter事件。然后将SelectedItemSelectedValue保存到成员变量中。只要你想,那么你可以重新分配该值到组合框。

注册参加活动。您可以通过以下两种方法之一来完成这一操作:

通过设计器完成。选择你的组合框。在“属性窗口”中,单击闪电图标以显示其所有事件。然后找到“Enter”,然后在框中双击。它会自动为您生成回调函数(“事件处理程序”),并将其连接到事件。

enter image description here

enter image description here

可以编程做同样的事情。在构造函数中,挂钩事件处理程序正确签名:

public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
     comboBox1.Enter += comboBox1_Enter; 
    } 

    private void comboBox1_Enter(object sender, EventArgs e) 
    { 
     m_cb1PrevVal = comboBox1.SelectedValue; 
    } 

    private void RestoreOldValue() 
    { 
     comboBox1.SelectedValue = m_cb1PrevVal; 
    } 
} 
+1

哦,还好,所以最后我必须学会如何管理那些... – smsware 2012-07-16 00:39:14

+0

管理,究竟是什么? – 2012-07-16 00:39:54

+0

事件,从来没有用过它们......它们看起来很可怕:) – smsware 2012-07-16 00:41:09