- PR -

ShowInTaskbarをFalseに設定した時の挙動

投稿者投稿内容
清華
ベテラン
会議室デビュー日: 2005/12/21
投稿数: 50
投稿日時: 2006-01-11 15:35
>>ダミーを持つって言うのは綺麗じゃないですね、インスタンスかした文だけメモリ食いますし…

っと、言いましたが他の方法がない、または激しく厳しい現状では一番スマートなことは分かってますorz 書き方が悪かったので訂正します、気分を悪くされてしまったらすいません。
ムック
会議室デビュー日: 2004/05/24
投稿数: 5
投稿日時: 2006-01-11 15:44
なるほど。やはり無理なのでしょうか。
個人的意見ですが、これは.NET Frameworkのバグのような気がします。

なぜならAlt+Tabのタスク一覧もタスクバーと同様のはずなのにも関わらず、
ShowInTaskbarではタスクバーのみ非表示にしているからです。
あるべき姿から言うと双方とも非表示になるべきかなぁと。
しかもFormBorderStyleプロパティに引きずられて挙動が変わるし。
しかもアイコンなしだし。。

引用:

てっきり None も再現条件かと思っておりました。(^^;)


紛らわしくてすみません。。

引用の方法、ありがとうございました。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-01-11 15:49
引用:

清華さんの書き込み (2006-01-11 15:35) より:

他の方法がない、または激しく厳しい現状では一番スマートなことは分かってますorz
書き方が悪かったので訂正します、気分を悪くされてしまったらすいません。


いえいえ、気にしておりません。(^^;)

System.Windows.Forms.Form を使って Hide 状態であれば
(スワップアウトしているので) メモリのコストはさほど気にはならないかと思います。
いや、GUI を伴わないアプリケーションに比べれば、かなり多いんですがw

メモリよりも「実装が泥臭くなる」という点の方がコストが高いと個人的に思います。
絶対にしたくない実装です... 探せば方法はあると思いますが...

ときに、タスクの一覧から消してしまうとして、
Form が隠れて掴めない状況になった場合に、どうするんでしょうか?

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ムック
会議室デビュー日: 2004/05/24
投稿数: 5
投稿日時: 2006-01-11 15:57
引用:
インスタンスかした文だけメモリ食いますし…


いや、インスタンスは1個で大丈夫ですよ。
さっきの清華 さんのコードを修正すると、こんな感じ。
コード:
private void Form1_Load(object sender, System.EventArgs e) {

    DummyForm dummy = new DummyForm();
    dummy.Hide();

    Form2 f = null;
    for(int i=0;i<10;i++) {
        f = new Form2();
        f.Owner = dummy;
        f.Show();
    }
}


清華
ベテラン
会議室デビュー日: 2005/12/21
投稿数: 50
投稿日時: 2006-01-11 15:59
引用:

ystem.Windows.Forms.Form を使って Hide 状態であれば
(スワップアウトしているので) メモリのコストはさほど気にはならないかと思います。
いや、GUI を伴わないアプリケーションに比べれば、かなり多いんですがw

メモリよりも「実装が泥臭くなる」という点の方がコストが高いと個人的に思います。
絶対にしたくない実装です... 探せば方法はあると思いますが...


同意権です、コードが複雑、というか綺麗ではなくなるのは本望では在りませんしね(どうせ人に見せないんだからいいような気もするが・個人の趣味開発しかしない)
基本的に無駄にメモリを使うのはどうも…気がついてないところでいっぱい無駄があるんですが、見つけ次第つぶしていってます…。

引用:

ときに、タスクの一覧から消してしまうとして、
Form が隠れて掴めない状況になった場合に、どうするんでしょうか?


完全に僕の今作っているソフトの場合ですが、画面隅に行くと画面にくっつくようになっているので、僕はそれは問題ありません。

ランチャソフト一個に対して八個くらいおんなじアイコン表示されるのが気持ち悪くて…一個表示してくれればそれにフォーカスしたときに全部フォーカスする設計になってるんでいいんですがねぇ……

なかなかこの方法日本・外国共に見つからない(というか探し方が……)もので、内容的に結構ムズカシor無茶苦茶簡単のどっちかだと思うのですがね。
_________________
9uiet Design - http://quietdesign.rental.allinoneserver.net/
デザインにこだわったソフトの配布とプログラミングTipsの公開(予定)をしています。
9uiet Blog - http://seiga.blog44.fc2.com/
笑ったことやプログラミングのことなど書
清華
ベテラン
会議室デビュー日: 2005/12/21
投稿数: 50
投稿日時: 2006-01-11 16:03
かぶりましたね・・・

引用:

いや、インスタンスは1個で大丈夫ですよ。
さっきの清華 さんのコードを修正すると、こんな感じ。
引用:

private void Form1_Load(object sender, System.EventArgs e) {

DummyForm dummy = new DummyForm();
dummy.Hide();

Form2 f = null;
for(int i=0;i<10;i++) {
f = new Form2();
f.Owner = dummy;
f.Show();
}
}




いえ、やはりインスタンス一個でもフォームは結構大きいものなので、それをダミーとするのがあまり綺麗じゃないかな?と思ったので、個数は関係ないんです(速度にはめいっぱい関係しますが)

どうせやるならClassからフォームの必要な部分だけ実装したクラス作るくらいのほうが綺麗な気がします、ダミーとするなら(いや、絶対やりませんけどwww)

# [quote]訂正

[ メッセージ編集済み 編集者: 清華 編集日時 2006-01-11 16:05 ]
清華
ベテラン
会議室デビュー日: 2005/12/21
投稿数: 50
投稿日時: 2006-01-12 10:50
Onwerを使わずに正しいアイコンを表示する方法見つけました。

http://www.kbalertz.com/kb_836673.aspx

でも、消せない(泣。 visible = false にすれば消せるけど、これじゃ意味がない。
_________________
9uiet Design - http://quietdesign.rental.allinoneserver.net/
デザインにこだわったソフトの配布とプログラミングTipsの公開(予定)をしています。
9uiet Blog - http://seiga.blog44.fc2.com/
笑ったことやプログラミングのことなど書
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-01-12 11:14
引用:

清華さんの書き込み (2006-01-12 10:50) より:

Onwerを使わずに正しいアイコンを表示する方法見つけました。


すごく見たいんですが、リンク先が見れません... orz

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌

スキルアップ/キャリアアップ(JOB@IT)