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