我正在使用 C# 开发一个用于显示信息的表单,但我仍然需要允许对信息进行一些操作。我真正想做的是从组合框中删除边框,这将允许我显示信息,同时还允许用户选择集合中的其他项目,而不必显示所有项目。
更具体地说,我有一个包含 4 或 5 个电子邮件地址的列表,但我只想一次显示一个,同时允许用户轻松选择不同的项目。我已经搜索遍了,但找不到修改组合框边框的简单方法,而无边框组合框将很好地满足我的需求。
我刚刚开始使用 C#,所以我仍在学习,也许我错过了一些东西。看起来这应该比事实要容易得多,希望有人可以帮助我。
EDIT:
该表单使用标签来显示信息,因此中间有一个组合框使其看起来很糟糕。基本上我正在寻找的是一个链接,单击该链接会打开默认电子邮件程序并填写地址,但我想要下拉按钮,以便可以选择备用地址。如果不需要的话,我不想显示一大堆地址,我只想一次显示一个。类似于组合框,但没有边框。
我可能只需要添加一个显示备用地址列表的按钮,但是如果我可以从组合框中删除边框并得到我想要的内容,为什么还要重新发明轮子呢?
谢谢
也许您根本不需要组合框。假设您使用的是 Windows 窗体,您可以使用标准 TextBox 并将电子邮件地址列表添加到其 AutoCompleteCustomSource(并将 AutoCompleteSource 设置为“CustomSource”)。
然后,如果您将 TextBox 的 AutoCompleteMode 设置为“Append”,用户将永远不会看到电子邮件地址的完整列表 - 他们只会在键入时在 TextBox 中填充闭合匹配项。通过一些隐藏代码,您甚至可以引入使用向上和向下箭头键循环浏览可用项目的功能。
Edit
现在您已经更新了您的问题,我将建议一种完全不同的方法。
添加“默认”电子邮件地址作为标准标签。哎呀 - 将其添加为 LinkLabel 并使其可点击,使其行为类似于网页上的 mailto: 链接。在该标签旁边,添加一个普通按钮。将其 FlatStyle 属性设置为“System”,将字体名称设置为“Marlett”,将标题设置为“u”,这样它就有一个漂亮的“下拉按钮”外观。
现在将 ContextMenuStrip 添加到您的表单中,并为每个电子邮件地址添加一个菜单项。您可以很容易地在代码中完成此操作。
现在为您的按钮添加此 Click 事件处理程序:
private void button1_Click(object sender, EventArgs e)
{
contextMenuStrip1.Show(button1, new Point(0, button1.Height));
}
因此,当单击该按钮时,会弹出菜单,显示“备用”电子邮件地址。您需要做的就是捕获菜单项的 Click 事件来“使用”所选的电子邮件地址。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)