ComboBox SelectedIndexChanged事件:如何获取先前选择的索引?

cod*_*ife 15 c# .net-3.5 winforms

我有一个用户控件,它有一个ComboBox和一个SelectedIndexChanged事件处理程序.在事件处理程序中,我需要能够分辨出之前选择的索引是什么...有人能指出我正确的方向吗?

private void cboTargetMode_SelectedIndexChanged(object sender, EventArgs e)
{
    // need to get the previously selected index and do some handling here...
    // ... some handler code here ...


    switch (cboTargetMode.SelectedIndex)
    {
        case 1:  // ..... some code here...
            break;
        case 2:  // ..... some code here...
            break;
        case 3:  // ..... some code here...
            break;
        default: // ..... some code here...
            break;
    }
}
Run Code Online (Sandbox Code Playgroud)

Ada*_*rth 23

内置任何内容,您将需要监听此事件并在实例变量中跟踪.

使用-1作为未初始化的"最后一个索引",因此在第一次传递时设置它但不使用它.随后的传球你使用它并设置它.

您总是可以使用自己的派生ComboBox类来执行此操作,并覆盖OnSelectedIndexChanged并公开PreviousSelectedIndex属性.这样,它就不会与表单紧密耦合.或者,正如您可以使用事件执行此操作,它也有资格作为扩展程序提供程序实现.