gpt4 book ai didi

c# - 如何填充 C# comboBox 中的空白区域作为对用户的提示?

转载 作者:行者123 更新时间:2023-11-30 19:03:52 25 4
gpt4 key购买 nike

当动态填充 C# 中的组合框时,组合框显示为空白,直到用户单击它以查看下拉列表中的可用项目。理想情况下,我想使用这个空白空间(在单击下拉列表之前)来提示用户他/她应该做什么。例如,它可能会说“选择某某……”有没有办法做到这一点?我尝试设置 Text 属性,但这没有做任何事情。我正在使用 Microsoft Visual C# 2008 Express Edition。谢谢。

最佳答案

它被称为“提示横幅”。 Windows 窗体不支持它,但它可以附加。向您的项目添加一个新类并粘贴如下所示的代码。编译。将工具箱顶部的按钮和新控件拖放到窗体上。将 Cue 属性设置为要显示的文本。需要 Vista 或 Win7,提示仅在组合框没有焦点时可见。

using System;
using System.Windows.Forms;
using System.Runtime.InteropServices;

public class ComboBoxEx : ComboBox {
private string mCue;
public string Cue {
get { return mCue; }
set {
mCue = value;
updateCue();
}
}
private void updateCue() {
if (this.IsHandleCreated)
SendMessageCue(this.Handle, CB_SETCUEBANNER, IntPtr.Zero, mCue ?? "");
}
protected override void OnHandleCreated(EventArgs e) {
base.OnHandleCreated(e);
updateCue();
}
// P/Invoke
private const int CB_SETCUEBANNER = 0x1703;
[DllImport("user32.dll", EntryPoint="SendMessageW", CharSet = CharSet.Auto)]
private static extern IntPtr SendMessageCue(IntPtr hWnd, int msg, IntPtr wp, string lp);
}

关于c# - 如何填充 C# comboBox 中的空白区域作为对用户的提示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2548757/

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