gpt4 book ai didi

c# - Winform 上的 C# ComboBox 是否有更新前

转载 作者:行者123 更新时间:2023-11-30 13:14:09 25 4
gpt4 key购买 nike

我来自 VBA 世界,记得有一个 BeforeUpdate 调用我可以在组合框上进行。现在我在使用 C#(并且很喜欢它),我想知道是否有 BeforeUpdate 调用 Winform 上的 ComboBox

我可以制作一个不可见的文本框并在其中存储我需要的信息,更新后,查看该文本框以找到我需要的信息,但我希望有一个更简单的解决方案。

最佳答案

WF 的优点之一是您可以轻松制作自己的。向您的项目添加一个新类并粘贴下面的代码。编译。将工具箱顶部的新控件拖放到窗体上。实现更新前事件。

using System;
using System.ComponentModel;
using System.Windows.Forms;

public class MyComboBox : ComboBox {
public event CancelEventHandler BeforeUpdate;

public MyComboBox() {
this.DropDownStyle = ComboBoxStyle.DropDownList;
}

private bool mBusy;
private int mPrevIndex = -1;

protected virtual void OnBeforeUpdate(CancelEventArgs cea) {
if (BeforeUpdate != null) BeforeUpdate(this, cea);
}

protected override void OnSelectedIndexChanged(EventArgs e) {
if (mBusy) return;
mBusy = true;
try {
CancelEventArgs cea = new CancelEventArgs();
OnBeforeUpdate(cea);
if (cea.Cancel) {
// Restore previous index
this.SelectedIndex = mPrevIndex;
return;
}
mPrevIndex = this.SelectedIndex;
base.OnSelectedIndexChanged(e);
}
finally {
mBusy = false;
}
}
}

关于c# - Winform 上的 C# ComboBox 是否有更新前,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/425241/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com