2017-10-10 386 views
0

C#で書かれた私のWindowsフォームアプリケーションでは、私はDateTimePickerのコントロールを持っています。コントロールのテキスト部分を中央に配置したいのですが、可能でしょうか? 私の現在のものは、左側にテキストがあり、右側にたくさんのスペースがあります。DateTimePickerのテキストを中央揃えにすることはできますか?

enter image description here

私は

myDateTimePicker.TextAlign = ContentAlignment.MiddleCenter; 

を試してみましたが、それはエラーを与えた:

'System.Windows.Forms.DateTimePicker' does not contain a definition for 'TextAlign' and no extension method 'TextAlign' accepting a first argument of type 'System.Windows.Forms.DateTimePicker' could be found (are you missing a using directive or an assembly reference?)

私が動作するように見え任意のプロパティを見つけることができなかった、と私はどこにでも解決策を見つけることができませんでしたインターネット上でも。これはまったく不可能ですか?

+0

古いWinFormsでは不可能になる可能性があります。コントロールをスタイル/カスタマイズできるWPFに切り替えることを検討してください。 – Xiaoy312

+2

いつでも可能ですが、必ずしも単純ではありません。たとえば、OnPaintハンドラをオーバーライドすることはできますが、ベースペイントに頼ることはできないため、あらゆる状況で描画することができます。 –

答えて

2

あなたはいつもDateTimePickerをサブクラス化OnPaintハンドラをオーバーライドすることができます:あなたは残念ながら...何とか

を即興する必要がある場合がありますので、あなたが「できる、

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に​​という定義があります。

関連する問題