>>951 メンバ変数 textBox1 を public にするのはあんまり良くない。
textBox1.Text を書き換えるようなメソッドもしくはプロパティを書いて、
それを public にしろ。
955 :
デフォルトの名無しさん:03/08/20 18:16
hosyu
>>936 300の技を立ち読みしてみ。Formの相互参照つーのがある。
957 :
デフォルトの名無しさん:03/08/20 23:34
リソースの開放に関して教えて。
IDisposable を実装したクラスを new する回数と、Dispose()が実行される回数が同じなら大丈夫と思っていい?
今 View.Detailsの ListViewで、動的に ColumnHeaderを変える 操作をしてるんだけど、ColumnHeaderが IDisposableなんで心配で心配で昼も眠れません。
たとえば以下のようにやってます。(わかる範囲で省略)
//Disposeが通るかどうかをチェックするためのクラス
class UserColumnHeader : System.Window.Forms.ColumnHeader
で、Dispose() をオーバーライドしておき…
//テストコード
ListView1.Columns.Add(new UserColumnHeader());
ListView1.Columns.Clear();
ListView1.Columns.Add(new UserColumnHeader());
ListView1.Columns.Add(new UserColumnHeader());
ListView1.Columns.Clear();
ListView1.Columns.Add(new UserColumnHeader());
ListView1.Columns.Add(new UserColumnHeader());
ListView1.Columns.Add(new UserColumnHeader());
を実行すると、アプリケーション終了までに6回オーバーライドしたDispose()が実行されないといけないですか?
>>957 それって ListView が Dispose されたときに
ColumnHeader の Dispose 呼んでくれてる気がする。
959 :
デフォルトの名無しさん:03/08/21 03:05
>>958 ListViewのDispose()では、最後の3つしか開放してくれません。
※Clear()されたColumnHeaderは、すでにListViewの管理外なので
そんなの開放する必要あるのか疑問
GCに任せちゃえばいいんじゃない
) <でぃすぽ
962 :
デフォルトの名無しさん:03/08/21 09:18
>>960 GCではDisposeされないという話をしているんです。
>>963 何のために Finallizer があるの? って話では?
this.Forcus();
これって自分にフォーカスが中るだけで、以前のフォーカスを外してくれないんだね・・・。
バグっぽいけど
>>964 サンプルでは6回ですが、実際は何度 ColumnHeaderを追加・削除するかわかりません。
なので明示的にDisposeさせたいんですが。
967 :
デフォルトの名無しさん:03/08/21 12:42
clear()でdisposeされるんじゃない?
>>969 悪いことは言わん。勝手に解放してくれるから放っておけ。
生意気言う暇があったら逆アセソースでも見ろよ。夏厨かお前?
>>970 その動作は確認してるのか?
そういう考えがメモリリークを生む気がするのだが。
GCだって万能じゃないってことをお忘れなく。
>>971 追加削除繰り返してメモリリークが本当に起こるか確かめてみたら?
対策はそれから考えても遅くないでしょ
>>971 考え?逆アセソースを見るというのは行動だぞ。
確認してるのか?じゃないだろ。お前が確認しろって言われてんだろ。夏厨かお前?
盲目的にM$を信じろと言われてもな
>>970 質問した本人です。
明示的にDisposeしたいという話なんですけど。
>>970 逆アセなんかするのはお前みたいなオタクだけ。
結局、誰も答えられないと。
978 :
デフォルトの名無しさん:03/08/21 19:50
夏厨祭り
979 :
デフォルトの名無しさん:03/08/21 19:59
ソースも公開されてないものの動作を信用しろなんて無理な話。
オプソマンセー
>>975 ColumnHeader[] hoge = new ColumnHeader[] {new UserColumnHeader(), .....};
ListView1.Columns.AddRange(hoge);
ListView1.Columns.Clear();
foreach (ColumnHeader h in hoge)
h.Dispose();
これくらいしか思いつかないが…
>>958 で合ってるじゃん。
無駄に調べてしまった。
>>976 ildasmも知らないお前はJavaでもやってろ。
Java no houga tukai yasui
javapもあるよ
>>981 だから最後に残ったColulmHeaderだけだってば
オープンソースというだけで盲目的にマンセーしてるやつうぜー
>>982 知らないとはいってない。
日本語わからないやつはJavaでもやってろ。
もうJavaなんか相手にしないでよ
生意気言ってごめんなさい、ildasmって何ですか?
993 :
デフォルトの名無しさん:03/08/22 17:40
disposeですることは、メモリ以外のリソースを、明示的に解放しなければならないとき。
なので呼び出されなくても大丈夫。
994 :
デフォルトの名無しさん:03/08/22 17:42
995 :
デフォルトの名無しさん:03/08/22 18:02
記念カキコ v(^-^*)
four
中途半端に埋めないこと
最後まで埋めること
後は任せた
とってみた
1001 :
1001:
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。