|
> ひどりさんの >>必ずしも Form のインスタンスを new しただけでウィンドウハンドルが作成されるわけではありませんが > に対してです。
> もし、Newとx = form,Handleの連続ステップというやり方で効力が無いなら改めなければいけませんが。。。
なるほど。 大本の文章の意図を読み違えていたようですみません。
昨日に投稿した時点では、newだけを "OnStartが実行されるスレッド" で先にやりたいという風に読んでいました。 この前提では、New(もといコンストラクタ)で実行されるInitializeComponentのコードとその先で呼び出されるコードにより、Newの時点でHandleが作成される恐れがあるという懸念を持ち、昨日あのように質問してみたものです。
----- 以下は2つの手法について考えたもの。本筋の質問とは外れてます。
A.Handleプロパティを参照して値を捨てる。(静的コード分析では不要なコードと指摘される恐れがあるかどうか?) B.IsHandleCreatedプロパティを参照して、場合によってはCreateControl(CreateHandle?)メソッドを呼び出す。
(見える範囲のコードでは)Aの方が条件分岐がなくてすっきりしているように見えるが、本来の目的はBのようなことであり、Handleプロパティの既定の実装がそれらを内部に隠してくれている。 どちらを使うかは、実害がない限り、好みの問題となるかなぁ。
|