2009-07-30 92 views
4

私はカスタムDateTimePickerを実装しました。 DateTimePickerにボタンがあります。例では、幅が16に設定されています。これは機能していますが、私は動的なアプローチをしたいと思います。DateTimePicker-Control/Controlsのボタンの幅を取得する方法は?

このボタンのサイズを取得する方法はありますか、サイズなどの.Net-Controlサブ要素に関する情報を取得する一般的な方法はありますか?

DateTimePicker.Controlsを試してみると、空ではありませんでした。

enter image description here

答えて

0

すべてのウィンドウコントロールは、あなたがintで、ボタンのサイズを変更することができるはずmyButton.Size.Widthを参照している場合、「サイズ」と呼ばれ、それらに割り当てられた構造体を持って形成しています。逆に、myButton.Size.Heightを使っても同じことができます。

+0

問題は、ボタンに直接アクセスする方法が見つかりませんでした。 DateTimePicker.Buttonなどのようなものはありません。 DateTimePicker.Controls.Countを実行するときは0です。 – Inno

0

DateTimeピッカーは、ネイティブのWindowsコントロールを使用します。あなたが言及している "ボタン"は、Windows自体によって描画されるものです。

現在のOSにはボタンに似たものがあるかもしれませんが、古いOSや将来のOSでは、DateTimeピッカーはまったく違うかもしれません。

あなたのコントロールをユーザーにとって最も素早く簡単に描画すれば、幸せになれます。

0

実装したDateTimePickerのコードを投稿できますか?あなたの正確な問題を説明するのに役立つかもしれません。そのサウンドによって、ボタンはDateTimePicker内にはなく、それに隣接するフォーム上にあります。私が間違っているなら、私を修正してください。

だから、あなたは以下の持っていた場合、:

DateTimePicker dtp = new DateTimePicker(); 
Button btn = new Button(); 
btn.Size.Width = btn.Size.Width * 2; 

にあなたはアクセスすることができ、ボタンコントロールのサイズを再設定します。

ボタンが実際にDateTimePickerに含まれている場合は、それをパブリックプロパティ(または理想的には内部プロパティ)として公開し、DTP経由で直接アクセスします。

1

は、ほとんどのスクロールバーメトリックオフすべてのWin32矢印ボタンキー:SystemInformationとControlPaint:

あなたがSystemInformation.VerticalScrollBarArrowHeight

二つの有用なクラスにしたいです。カスタムコントロールを扱うときは、非常に貴重です。

Int32 size = SystemInformation.VerticalScrollBarArrowHeight; 
ControlPaint.DrawScrollButton(e.Graphics, 0, 0, size, size, ScrollButton.Down, ButtonState.Normal); 
関連する問題