工具栏上的文本按钮

4

我想在WinForms工具栏上添加一个文本按钮(标准工具栏上的按钮只能包含图像)。

文本框、组合框可以很容易地添加到工具栏上,但没有文本按钮选项。

如何实现?

更新 我指的是标准的Windows按钮。

3个回答

5

ToolStripItem.DisplayStyle设置为Text

var toolStripButton = new ToolStripButton();
toolStripButton.DisplayStyle = ToolStripItemDisplayStyle.Text;

2
我理解您所说的“文本按钮”是指既包含图像又包含文本的按钮。因此:

我假设你所说的text button是指不仅包含图像而且还包含文本的按钮。所以:

ToolBar toolbar = new ToolBar();

Button button = new Button();
button.Text = "Hi!";
button.Image = Image.FromFile("Your image path");//or from resource..

toolbar.Add(button);
this.Controls.Add(toolbar);

编辑:由于您意思是 ToolStrip,您可以这样做:

string text = "Hi";
Image image = Image.FromFile("Your image path");

ToolStripButton toolButton = new ToolStripButton(text, image);
toolButton.TextImageRelation = TextImageRelation.Overlay;//or what ever you want to
toolStrip1.Items.Add(toolButton);

编辑:

看起来像是菜单项(鼠标悬停时高亮显示的标签),而不是标准按钮。

不幸的是,这是微软提供的内容。如果您不喜欢它,请继承ToolStripItem并设计自己的按钮。

还要注意,您可以使用toolButton.BackgroundImage,但它也无法给您带来普通Button的效果。


不起作用,Add 方法需要 ToolBarButton,而不是 Button。此外,ToolBar 已经相当过时了,ToolStrip 已经取代了它,而 ToolStrip 也没有一个简单按钮的方法。 - Centro
我指的是 toolbar.Controls.Add(button) - Jalal Said
@Centro 你是不是指的是System.Windows.Forms.ToolBar - Jalal Said
它的运行结果与预期不符,它添加了一个按钮到工具栏上覆盖了现有的工具栏按钮,因此必须设置按钮位置以将其放置在不太优雅的位置。并且它只适用于“ToolBar”工具栏,而对于“ToolStrip”则不适用,因为它没有“Controls”属性。 - Centro
不幸的是,这就是微软提供的。如果你不喜欢它,就继承ToolStripItem并设计自己的控件。 - Jalal Said
显示剩余2条评论

2
您可以使用ToolStripControlHost将任何控件嵌入您的工具栏:
Button button = new Button();
button.Text = "Standard Windows Button";
yourToolStrip.Items.Add(new ToolStripControlHost(button));

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接