如何在Windows窗体中为按钮的文本添加上标?

时间:2016-07-15 10:19:02

标签: button windows-forms-designer

我正在尝试创建一个类似于我们在Windows 10中使用的虚拟键盘。我使用按钮来表示键盘上的所有字符。但是如何将文字放在有多个字符的键上,例如在?键上,我们还有一个/,那我该怎么做呢?

基本上这就是我想做的事情(来自windows 10虚拟键盘)

enter image description here

但我现在只能做到这一点:

enter image description here

那么如何添加上标类似物以使我的按钮看起来更专业呢?

由于

1 个答案:

答案 0 :(得分:0)

您可以创建一个扩展System.Windows.Forms.Button的新Button类。

public class SuperscriptButton : Button
{
    [Browsable(true)]
    public event EventHandler SuperscriptChanged;

    [Browsable(true)]
    public string Superscript
    {
        get
        {
            return _superScript;
        }
        set
        {
            _superScript = value;
            OnSuperscriptChanged(EventArgs.Empty);
        }
    }

    private string _superScript;

    public SuperscriptButton()
    {
        TextAlign = System.Drawing.ContentAlignment.BottomRight;
    }

    protected override void OnPaint(PaintEventArgs pevent)
    {
       base.OnPaint(pevent);
       System.Drawing.Graphics g = pevent.Graphics;

       g.DrawString(Superscript, Font, new System.Drawing.SolidBrush(ForeColor), 5, 5);
    }

    private void OnSuperscriptChanged(EventArgs e)
    {
        if(SuperscriptChanged != null)
            SuperscriptChanged(this, e);
        Refresh();
    }
}

现在您可以在设计器中使用此按钮并更改Superscript属性以更改显示的字符。