前提・実現したいこと
.NET のソースを下記サイトから見ています。
https://referencesource.microsoft.com/#System.Windows.Forms/winforms/Managed/System/WinForms/DateTimePicker.cs
DateTimePicker の ForeColor が変更できないと同僚から相談を受け、
どんな実装になっているのか気になり調べる事にしました。
OnPaint あたりを見れば何となく分かるかな程度の気持ちでしたが、
該当メソッドの override は無いし、継承元は Control だし、
一体どこで描画処理を行っているのか不思議に思っています。
NativeMethods 辺りが肝なのかなと思っていますが、
どこでどう繋がっているのか追いかけられていません。
果たして NativeMethods で当たりかどうかも不明です。
詳しい方がいれば、良ければ教えて頂きたいです。
個人的にはどのような流れで描画が走っているか知りたいです。
同僚のために、前景色の変え方に案があれば併せてお願いします。
試したこと
該当サイトのソースを追いかけましたが、結論に至る事が出来ませんでした。
COM 側で描画して .NET 側で
User32.SendMessageW()
で制御しているところまでは把握していますでしょうか?
再描画自体はControl側で REDRAW していますね。
https://source.dot.net/#System.Windows.Forms/System/Windows/Forms/Control.cs,4744
描画自体を抑制したい場合は自前で SendMessage をする必要があるみたいですね。
https://qiita.com/otagaisama-1/items/9e776469f93a3697d55e
ありがとうございます。
BA のコメントに書きましたが、こちらの回答も参考に
情報収集する事で理解が進みました。
回答2件
あなたの回答
tips
プレビュー