从combobox中删除边框

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

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

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

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

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

也许你根本不需要ComboBox。 假设您正在使用Windows窗体,您可以使用标准TextBox并将您的电子邮件地址列表添加到其AutoCompleteCustomSource(并将AutoCompleteSource设置为“CustomSource”)。

然后,如果将TextBox的AutoCompleteMode设置为“Append”,则用户将永远不会看到完整的电子邮件地址列表 – 他们只会在键入时填充TextBox中的关闭匹配。 通过一些代码隐藏,您甚至可以引入使用向上和向下箭头键循环浏览可用项目的function。

编辑

既然您已经更新了问题,我将建议采用完全不同的方法。

添加“默认”电子邮件地址作为标准标签。 哎呀 – 将它添加为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事件以“使用”所选的电子邮件地址。

为什么你需要ComboBox无边界? 对我来说没有多大意义。

让你可以做的是制作一个只读的ComboBox 。 您可以填充条目,并允许用户选择它们,但不能输入任何文本。

只需将DropDownStyle设置为ComboBoxStyle.DropDownList

 this.comboBox1.DropDownStyle = ComboBoxStyle.DropDownList; 

更新:

您可以通过将DrawMode设置为DrawMode来尝试“隐藏”边框。

 this.comboBox1.DrawMode = DrawMode.OwnerDrawFixed; 

这不会隐藏它,但会使其不太明显。