Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 自定义按钮文本外观_C#_.net_Vb.net_Winforms_Button - Fatal编程技术网

C# 自定义按钮文本外观

C# 自定义按钮文本外观,c#,.net,vb.net,winforms,button,C#,.net,Vb.net,Winforms,Button,我正在开发一个vb.net winform应用程序。 默认情况下,按钮上的文本在留出一点空间后开始。我需要从边框本身开始,没有任何空格。我还想通过添加一些缩进值来控制间距 但是没有按钮属性来控制这个。你能提出一些实现这一目标的方法吗。下图显示了该要求 按钮1表示默认情况下文本的显示方式。按钮2是要实现的输出。我建议您使用图像而不是文本。将图像设置为按钮背景图像或简单按钮图像,然后可以使用“对齐”属性将文本移动到任意角 对于这种定制,您需要创建一个自定义winforms控件 检查这篇CP文章不需

我正在开发一个vb.net winform应用程序。 默认情况下,按钮上的文本在留出一点空间后开始。我需要从边框本身开始,没有任何空格。我还想通过添加一些缩进值来控制间距

但是没有按钮属性来控制这个。你能提出一些实现这一目标的方法吗。下图显示了该要求


按钮1表示默认情况下文本的显示方式。按钮2是要实现的输出。

我建议您使用图像而不是文本。将图像设置为按钮背景图像或简单按钮图像,然后可以使用“对齐”属性将文本移动到任意角

对于这种定制,您需要创建一个自定义winforms控件


检查这篇CP文章

不需要驱动您自己的类C#和VB中的Button类都有一个属性

VB

C#


快乐的编码和分享…)

您需要处理按钮的绘制事件才能在按钮上绘制字符串

比如:

并设置FlatStyle、BorderColor、BorderSize属性:

按钮UI的输出:


我需要使用文本,因为总共会有1000多个按钮,而有这么多文本背景图像并不理想。此外,对于字体的更改,我们必须替换图像。这不是个好主意。请看一下这篇文章。即wpf按钮控件:(@Harsh如果有效,请接受答案,以便其他人在需要时发现它的有用性。我认为OP已经知道了这一点…但是如果你仔细阅读问题,你会发现这并没有解决问题,因为在边界和文本之间有一个空格。是的@SysDragon。这没有解决问题。仍然有一个空格Twitter的边界和文本。TexTaleGo已经设置在中左端。然后这个答案实际上毫无用处。-我不明白你为什么这么说。为什么?你的答案都不有用吗?这个答案不加任何新的东西,你应该考虑删除它或者编辑它来给出解决方案。
Me.Button2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
this.button1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
Private Sub Button1_Paint(sender As System.Object, e As System.Windows.Forms.PaintEventArgs) Handles Button1.Paint
        Button1.Text = String.Empty
        e.Graphics.DrawString("Test", Button1.Font, Brushes.Black, New Point(0, 5))
End Sub