如何为手动创建的按钮添加标签/文本?

时间:2014-04-23 22:55:11

标签: c# winforms button label

我使用下面的代码创建了一个按钮。添加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();
    }
}

3 个答案:

答案 0 :(得分:2)

您已将自己的按钮实现为用户控件。由于您要实现OnPaint以提供自己的绘图功能,因此您需要实现绘制文本等所有功能。

如果你想沿着这条路走下去,那么你还需要添加逻辑来在OnPaint方法中的控件上绘制文本。这可以使用graphics.DrawString方法完成。

请参阅http://msdn.microsoft.com/en-us/library/system.drawing.graphics.drawstring.aspx

您还需要调用graphics.dispose。

如果您对此不熟悉,那么使用UserControl并为其添加标签或类似内容可能更简单,然后在其顶部绘制圆形。

答案 1 :(得分:1)

您应该使用OnPaint方法自己绘制按钮的文字:

TextRenderer.DrawText(graphics, Text, Font, new Point(5, 5), SystemColors.ControlText);

new Point(5, 5) - 位于文本的左上角位置。

答案 2 :(得分:1)

您可以按下按钮,但不要绘制文本。

用户控件本身不会这样做。

只需在paint命令中添加以下内容:

graphics.DrawString(Text, yourfont, yourBrush, x, y);   

你必须并且可能必须自由决定x,y字体和画笔。