使用标签

时间:2016-03-18 16:13:02

标签: c# winforms

好的,我一直在重做我4年前创建的应用程序。如果有办法使用标签创建下拉菜单,我就会徘徊。

目前我在无边框表格上有几个按钮,而menustrip看起来并不正确。

所以我想如果我在标签上做一个绑定,我可以实现我正在寻找的东西。我有一个标签打开并隐藏我的标签控件。

有没有办法扩展它,当鼠标悬停事件时,它会产生一个下拉菜单?

实施例

自定义(标签)

  

命令(标签)   用户输入(标签)   Web命令(选项卡)

是否可以通过下拉菜单单独列出我的标签控件中的每个标签?我的主要标签Customize打开并隐藏选项卡控件。

我真的不想使用menuStrips或按钮或任何东西,因为它看起来不正确。我有两个按钮,一个是注销按钮,另一个是更新命令按钮,一旦我得到控制台控件位置。

如果无法完成,那么我将保持原样,只需点击我想要的标签即可。下面的图片是我的主要表格。我点击自定义,它会弹出一个tabControl。我希望表单无边框。我不希望在表格顶部有一条白色条带。我试图使形式顺利。因此,当我将鼠标悬停在自定义上时,它将显示TabControl中的选项卡。就像一个菜单。见下面两张图。

enter image description here

更新:这就是我想要做的事情,仅使用Label。我不想使用以下任何一个: toolStrips, toolStripContainers, menuStrips, 的ContextMenuStrip, 纽扣 组合框。

我想只使用一个标签。而且只有一个标签。

enter image description here

1 个答案:

答案 0 :(得分:0)

试图找出你所要求的帮助是痛苦的,但尽管我可以说,这可能是你想要做的事情:

Size originalSize;
String originalText;

void CustomizeLabel_MouseEnter(object sender, EventArgs e) {
  originalSize = CustomizeLabel.Size;
  originalText = CustomizeLabel.Text;

  StringBuilder sb = new StringBuilder();
  sb.AppendLine(originalText);
  foreach (TabPage tp in tabControl1.TabPages) {
    sb.AppendLine("    " + tp.Text);
  }

  CustomizeLabel.Text = sb.ToString();
  CustomizeLabel.Height = TextRenderer.MeasureText(CustomizeLabel.Text,
                                                   CustomizeLabel.Font).Height;
}

void CustomizeLabel_MouseLeave(object sender, EventArgs e) {
  CustomizeLabel.Text = originalText;
  CustomizeLabel.Size = originalSize;
}