nig*_*der 3 .net combobox winforms
我有一个ComboBox,有一个制造商列表.当用户选择制造商时,下面的网格将填充所选制造商的数据.该数据可以修改.完成所有更改后,用户必须按"保存"按钮.
但是用户可能忘记按Save并从ComboBox中选择另一个制造商,并且网格将填充另一个数据,因此之前的更改将丢失.
因此,在选择其他制造商之前,我需要询问用户是否要保存更改.
我怎样才能做到这一点?或者也许你提供另一种解决我的任务的方法(从另一个角度看)?
以下是我们如何将ComboBox子类化以引入新的SelectedIndexChangingEvent,并可以取消更改:
    public class ComboBoxEx : ComboBox
{
    public event CancelEventHandler SelectedIndexChanging;
    [Browsable(false)]
    public int LastAcceptedSelectedIndex { get; private set; }
    public ComboBoxEx()
    {
        LastAcceptedSelectedIndex = -1;
    }
    protected void OnSelectedIndexChanging(CancelEventArgs e)
    {
        var selectedIndexChanging = SelectedIndexChanging;
        if (selectedIndexChanging != null)
            selectedIndexChanging(this, e);
    }
    protected override void OnSelectedIndexChanged(EventArgs e)
    {
        if (LastAcceptedSelectedIndex != SelectedIndex)
        {
            var cancelEventArgs = new CancelEventArgs();
            OnSelectedIndexChanging(cancelEventArgs);
            if (!cancelEventArgs.Cancel)
            {
                LastAcceptedSelectedIndex = SelectedIndex;
                base.OnSelectedIndexChanged(e);
            }
            else
                SelectedIndex = LastAcceptedSelectedIndex;
        }
    }
}
| 归档时间: | 
 | 
| 查看次数: | 21630 次 | 
| 最近记录: |