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