C# 如何向手动创建的按钮添加标签/文本?
我用下面的代码创建了一个按钮。添加C# 如何向手动创建的按钮添加标签/文本?,c#,winforms,button,label,C#,Winforms,Button,Label,我用下面的代码创建了一个按钮。添加start.Text=“start”语句不执行任何操作。如何向按钮添加标签 public MainForm() { InitializeComponent(); myButtonObject start = new myButtonObject(); EventHandler myHandler = new EventHandler(start_Click); start.Click += myHandler; star
start.Text=“start”代码>语句不执行任何操作。如何向按钮添加标签
public MainForm()
{
InitializeComponent();
myButtonObject start = new myButtonObject();
EventHandler myHandler = new EventHandler(start_Click);
start.Click += myHandler;
start.Location = new System.Drawing.Point(200, 500);
start.Size = new System.Drawing.Size(101, 101);
start.Text="Start";
// start.TextAlign = new System.Drawing.ContentAlignment.MiddleCenter;
this.Controls.Add(start);
}
public class myButtonObject : UserControl
{
// Draw the new button.
protected override void OnPaint(PaintEventArgs e)
{
Graphics graphics = e.Graphics;
Pen myPen = new Pen(Color.Black);
// Draw the button in the form of a circle
graphics.FillEllipse(Brushes.Goldenrod, 0, 0, 100, 100);
graphics.DrawEllipse(myPen, 0, 0, 100, 100);
myPen.Dispose();
}
}
您应该自己在OnPaint
方法中绘制按钮文本:
TextRenderer.DrawText(graphics, Text, Font, new Point(5, 5), SystemColors.ControlText);
其中,新点(5,5)
-是文本的左上角位置。您应该使用OnPaint
方法自己绘制按钮文本:
TextRenderer.DrawText(graphics, Text, Font, new Point(5, 5), SystemColors.ControlText);
其中新点(5,5)
-是文本的左上角位置。您已经实现了自己的按钮作为用户控件。由于实现OnPaint是为了提供自己的绘制功能,因此还需要实现所有功能,如绘制文本
如果您想沿着这条路线走下去,那么还需要在OnPaint方法中添加逻辑来绘制控件上的文本。这可以使用graphics.DrawString方法完成
看
您还需要调用graphics.dispose
如果您不熟悉这一点,那么使用UserControl并向其添加标签或类似内容,然后在其顶部绘制圆形状可能会更简单 您已经实现了自己的按钮作为用户控件。由于实现OnPaint是为了提供自己的绘制功能,因此还需要实现所有功能,如绘制文本
如果您想沿着这条路线走下去,那么还需要在OnPaint方法中添加逻辑来绘制控件上的文本。这可以使用graphics.DrawString方法完成
看
您还需要调用graphics.dispose
如果您不熟悉这一点,那么使用UserControl并向其添加标签或类似内容,然后在其顶部绘制圆形状可能会更简单 可以绘制按钮,但不绘制文本
usercontrol本身并不能做到这一点
只需在“绘制”命令中添加类似的内容:
graphics.DrawString(Text, yourfont, yourBrush, x, y);
您必须并且可能必须自由决定x、y字体和画笔 可以绘制按钮,但不绘制文本
usercontrol本身并不能做到这一点
只需在“绘制”命令中添加类似的内容:
graphics.DrawString(Text, yourfont, yourBrush, x, y);
您必须并且可能必须自由决定x、y字体和画笔 顺便说一句,如何将文本居中?请使用TextRenderer.DrawText
方法的其他重载。例如:我看到:)thnx 4 ur帮助:)非常感谢。顺便问一下,我如何将文本居中?使用textrender.DrawText方法的其他重载。例如:我明白了:)thnx 4您的帮助:)非常感谢