从组合框中删除边框

Tes*_*101 5 c# controls

我正在使用C#中用于显示信息的表单,但我仍然需要允许对信息进行一些操作.我真正想做的是从组合框中删除边框,这将允许我显示信息,同时还允许用户选择集合中的其他项目而不必全部显示它们.

更具体地说,我有一个4或5个电子邮件地址的列表,但我只希望一次显示一个,同时允许用户轻松选择不同的项目.我已经搜遍了所有但是找不到一种简单的方法来修改组合框的边框,并且边框少的组合框将很好地满足我的需求.

我刚开始使用C#所以我还在学习,也许我错过了一些东西.看起来这应该比结果要容易得多,希望有人可以帮助我.

编辑:
表单使用标签来显示信息,因此在它的中间有一个组合框使它看起来很糟糕.基本上我正在寻找的是一个链接,点击时打开默认的电子邮件程序并填写地址,但我想要下拉按钮,以便可以选择备用地址.如果我不需要,我不想显示庞大的地址列表,我只想一次显示一个.像一个组合框,但没有边框.

我可能只是添加一个显示备用地址列表的按钮,但是如果我可以从组合框中删除边框并且具有我正在寻找的内容,为什么要重新发明轮子?谢谢

Mat*_*ton 3

也许您根本不需要组合框。假设您使用的是 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 事件来“使用”所选的电子邮件地址。