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您的帮助:)非常感谢