在用C#编写的Windows窗体应用程序中,我有一个DateTimePicker
控件。我想将控件的文本部分居中,但是可能吗?
我现在的文字在左边有文字,在右边有很多空间。
我试过
myDateTimePicker.TextAlign = ContentAlignment.MiddleCenter;
但它给出了错误:
' System.Windows.Forms.DateTimePicker'不包含' TextAlign'的定义没有扩展方法' TextAlign'接受类型' System.Windows.Forms.DateTimePicker'的第一个参数。可以找到(你错过了使用指令或程序集引用吗?)
我找不到任何似乎有用的属性,我也无法在互联网上的任何地方找到解决方案。这根本不可能吗?
答案 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
的定义。