.Netはめんどくせぇ


※疲れ切って書いてるので、ソースコードは適当です

まぁ、俺のやってることも変といえば変なんたけど。
まぁ、愚痴なので適当に読んで頂戴!

WebKit.NETをつかってるんだけど、その上にDataGridのせるわけですよ。
この時点でやってることはちょっと変かもしれない。
今まではフォームにWebkit.NETとDataGridViewを貼っつけて、重ねて動いてた(よくかんがえれば、兄弟で重ねてるから良くない。)けど、問題が出た。

で、WebKit.NETの子としてDataGridViewを存在させようとした。
普通なら

webkit.Controls.Add(dgv);

みたいな感じでやるんだけど、

SetParent(webkitcore.webBrowserViewHdndle,dgv.Handle);
dgv.Parent = webkit;

みたいに、WinAPI使うわけです。
で、ここで忘れてはいけないのはParentの設定。
SetParent()で親コントロールを設定したので安心したら大ハマり。
よくよくかんがえれば、Parentプロパティがnullになるので、.Net的に親子関係わからなくなる。
Windows的には明確なんだけどね。
この辺、Spy++使って親子関係確認してたので、.Netの親子関係を完全に見落としてた。

まぁ、そんなこんなで、アンマネージド使うと.Netの便利機能は便利じゃなくなるし、訳の分からないバグ作り込んじゃうから気をつけようねって結論。

.NETはこれだからあまり好きじゃない…

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)