是否可以将DateTimePicker的文本居中?

时间:2017-10-10 20:13:48

标签: c# winforms datetimepicker text-alignment

在用C#编写的Windows窗体应用程序中,我有一个DateTimePicker控件。我想将控件的文本部分居中,但是可能吗? 我现在的文字在左边有文字,在右边有很多空间。

enter image description here

我试过

myDateTimePicker.TextAlign = ContentAlignment.MiddleCenter;

但它给出了错误:

  

' System.Windows.Forms.DateTimePicker'不包含' TextAlign'的定义没有扩展方法' TextAlign'接受类型' System.Windows.Forms.DateTimePicker'的第一个参数。可以找到(你错过了使用指令或程序集引用吗?)

我找不到任何似乎有用的属性,我也无法在互联网上的任何地方找到解决方案。这根本不可能吗?

1 个答案:

答案 0 :(得分:3)

您始终可以通过继承OnPaint

来覆盖DateTimePicker处理程序
public class CenteredDateTimePicker : DateTimePicker
{
    public CenteredDateTimePicker()
    {
        SetStyle(ControlStyles.UserPaint, true);
    }

    protected override void OnPaint(PaintEventArgs e)
    {
        e.Graphics.DrawString(Text, Font, new SolidBrush(ForeColor), ClientRectangle, new StringFormat
        {
            Alignment = StringAlignment.Center,
            LineAlignment = StringAlignment.Center
        });
    }
}

但是,这里没有绘制滚动条,所以你可能不得不以某种方式即兴创作......

很遗憾,您无法在Reference Source上找到DateTimePicker.OnPaint的定义。