C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[10]: フォームを開くときチラツク・・・・


(過去ログ 31 を表示中)

[トピック内 19 記事 (1 - 19 表示)]  << 0 >>

■14977 / inTopicNo.1)  フォームを開くときチラツク・・・・
  
□投稿者/ ぽん他 (18回)-(2008/02/29(Fri) 17:04:56)

分類:[C#] 

またお世話になります。ほん他です。
よろしくお願い致します。

ShowDialog で開いたフォームに沢山のコントロールを配置してると、
#パネルの上にテキストボックスや、ボタンや、ラベルや、DetaGrridView や・・・・

開くときに、各コントロールが表示されるのに時間差があり、
一瞬後ろの絵が残ったり、なんか気分的に良くないのですが、
これは一瞬で全て表示できるようにすることは可能なのでしょうか?

開ききった後で、 Alt+tab で画面を切り替えてもなります。
コントロールの配置の仕方に問題があるのでしょうか?

引用返信 編集キー/
■14978 / inTopicNo.2)  Re[1]: フォームを開くときチラツク・・・・
□投稿者/ nakaP (2回)-(2008/02/29(Fri) 17:33:20)
こんにちは。
No14977 (ぽん他 さん) に返信
>
> ShowDialog で開いたフォームに沢山のコントロールを配置してると、
> #パネルの上にテキストボックスや、ボタンや、ラベルや、DetaGrridView や・・・・
>
> 開くときに、各コントロールが表示されるのに時間差があり、
> 一瞬後ろの絵が残ったり、なんか気分的に良くないのですが、
> これは一瞬で全て表示できるようにすることは可能なのでしょうか?

Form.DoubleBufferdプロパティ辺りでしょうか。

> コントロールの配置の仕方に問題があるのでしょうか?

配置している数は影響ありますね。
引用返信 編集キー/
■14981 / inTopicNo.3)  Re[2]: フォームを開くときチラツク・・・・
□投稿者/ ぽん他 (19回)-(2008/02/29(Fri) 18:04:18)
nakaPさま

ご返事ありがとうございます。ぽん他です。

DoubleBufferd こういうのがあるのですね、勉強になりました。
 ↓ ここのを実行してみました。
http://msdn2.microsoft.com/ja-jp/library/3t7htc9c(VS.80).aspx

但し、DoubleBufferdをする前と、後であまり変化が無いようなぁ・・・
やり方が悪いのでしょうか?

1.単純にフォームのプロパティの値を True に変えた。
2.Form_Load に SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
 を置いてみた・・・・

ん・・・??こういうものなのだろうかぁ・・・?
すみません・・・


引用返信 編集キー/
■14982 / inTopicNo.4)  Re[3]: フォームを開くときチラツク・・・・
□投稿者/ まどか (477回)-(2008/02/29(Fri) 18:11:02)
あと、コントロールによってやるべきことというかそのためのものが用意されているものがあります。

ListView.BeginUpdate
ListView.EndUpdate

とか。
この場合、これで囲まないとアイテムを追加したりテキストを書き換えるごとに描画が頻繁に発生しちらつくことがあります。
こういう呼ばなくても問題は起きないが、暗黙の御作法みたいなものは厄介ですね。
こつこつ覚えていくしかありません。。。

引用返信 編集キー/
■14985 / inTopicNo.5)  Re[4]: フォームを開くときチラツク・・・・
□投稿者/ れい (432回)-(2008/02/29(Fri) 19:04:38)

http://bbs.wankuma.com/index.cgi?mode=al2&namber=11281&KLOG=25

この辺参照です。

引用返信 編集キー/
■15078 / inTopicNo.6)  Re[5]: フォームを開くときチラツク・・・・
□投稿者/ ぽん他 (20回)-(2008/03/04(Tue) 07:42:41)
まどかさん、れいさん
お返事ありがとうございます。ぽん他です。
いつもお世話になっております。

ListView.BeginUpdate
ListView.EndUpdate

は、使用してませんがちょっと調べて勉強になりました。
DataGridViewは使ってますが、これには無いようです。
こつこつ頑張ります。

>れんさん

http://bbs.wankuma.com/index.cgi?mode=al2&namber=11281&KLOG=25
>この辺参照です。

ありがとうございます。拝見しましたが、
すみません、まだ理解不足です。
DoubleBufferedは、コントロールの配置(数)に関しては
関係ないみたいな感じと、WS_EX_COMPOSITED が重要?
みたいな感じで・・・苦笑(実装の仕方がちんぷんかんぷん)
もう少し勉強しまてみます。・・

#他のアプリとか見ると、ぱらぱら表示されて来ないので、
#何かやり方があるんだとは思います。

いつもありがとうです。

引用返信 編集キー/
■15087 / inTopicNo.7)  Re[1]: フォームを開くときチラツク・・・・
□投稿者/ 渋木宏明(ひどり) (663回)-(2008/03/04(Tue) 11:10:17)
渋木宏明(ひどり) さんの Web サイト
> ShowDialog で開いたフォームに沢山のコントロールを配置してると、

「沢山」とは、具体的に何個くらいですか?

100や200もあるようなら、これはもう仕方ありません。

> 開くときに、各コントロールが表示されるのに時間差があり、
> 一瞬後ろの絵が残ったり、なんか気分的に良くないのですが、

「後ろの絵」とは、具体的には何の事ですか?

Form の背景に画像を設定していたり、独自に描画しているのでしょうか?
あるいは、Form の表示位置に元々あった他のウィンドウやデスクトップのことを指していますか?

> 開ききった後で、 Alt+tab で画面を切り替えてもなります。

てのはちょっとおかしいかもしれません。
DataGridView 等への表示データの設定は、どんなタイミングで行っていますか?
引用返信 編集キー/
■15090 / inTopicNo.8)  Re[2]: フォームを開くときチラツク・・・・
□投稿者/ れい (435回)-(2008/03/04(Tue) 11:31:58)
コントロールがたくさんある場合は
WS_EX_COMPOSITEDを設定したPanelに、コントロールを全部のっけてやってください。
それで時間差はなくなります。

もちろん、ダブルバッファしてるので
トータルの描画速度もメモリ使用量も悪化しますが。

気分的にいいかもしれません。

引用返信 編集キー/
■15091 / inTopicNo.9)  Re[3]: フォームを開くときチラツク・・・・
□投稿者/ れい (436回)-(2008/03/04(Tue) 11:36:49)
ちなみに、DoubleBufferedは
子コントロールの描画には影響を与えません。
つまり、自分でフォームに描画するときにしか役に立ちません。
ですので、恐らくぽん他さんの役には立ちません。

> みたいな感じで・・・苦笑(実装の仕方がちんぷんかんぷん)

No11413はまとめですから
実装の仕方まで書いてませんね。
キーワードは列挙されてますので
検索などで簡単に調べられると思います。
引用返信 編集キー/
■15095 / inTopicNo.10)  Re[2]: フォームを開くときチラツク・・・・
□投稿者/ PATIO (13回)-(2008/03/04(Tue) 13:25:49)
>>ShowDialog で開いたフォームに沢山のコントロールを配置してると、
>
> 「沢山」とは、具体的に何個くらいですか?
>
> 100や200もあるようなら、これはもう仕方ありません。

これに一票。
PC個体の性能差もありますので数に関して一概には言えないと思いますけれど、
100個とかのレベルだと基本的にしょうがないと思います。
基本的にはちらつくほどの数のコントロールを一度に表示するような
インターフェイスは、PCにも人にもやさしく無いと思います。
私ならそういう画面が出たら操作する気がなくなりそう。

引用返信 編集キー/
■15146 / inTopicNo.11)  Re[3]: フォームを開くときチラツク・・・・
□投稿者/ ぽん他 (21回)-(2008/03/05(Wed) 12:05:15)
渋木宏明(ひどり)さん、PATIOさん、れいさん
お返事ありがとうございます。ぽん他です。
大変助かっております。

> 「沢山」とは、具体的に何個くらいですか?
> 100や200もあるようなら、これはもう仕方ありません。

はい、沢山あります。数えると70↑ぐらいです。
最初の考え方に問題があったみたいです。
大体みなさん、何個ぐらいが使い手のことも考えて
良いと考えるのでしょうか?(表示も考えて)

現在のものは、数え方がイマイチなのでドキュメントアウトラインっぽく書くと、

↓大変判りにくくすみません。
-----------------------------------------------------------
SplitContainer
Panel1 SplitterPanel
SplitContainer1
SplitContainer1 SplitterPanel
ボタン3個、ラベル7個
SplitContainer2 SplitterPanel
Panel
ボタン2個、
Panel
ラベル1個
Panel
ラベル1個、テキストBOX1個
Panel2 SplitterPanel
SplitContainer
Panel1 SplitterPanel
DataGridView1個
Panel2 SplitterPanel
ボタン21個(ファンクションキー割り当て予定)
ラベル2個、テキストBOX1個
Panel1
ラベル9個、テキストBOX3個
Panel2
GroupBox1
ラベル4、テキストBOX4個、ピクチャーボックス1
GroupBox2
ラベル3、テキストBOX3個、ピクチャーボックス1
Panel3
Panel1
テキストBOX1
Panel2
ラベル1、テキストBOX1
GroupBox1
テキストBOX1個
-----------------------------------------------------------
>「後ろの絵」とは、具体的には何の事ですか?
>Form の背景に画像を設定していたり、独自に描画しているのでしょうか?
>あるいは、Form の表示位置に元々あった他のウィンドウやデスクトップのことを指していますか?

はい、親フォームの内容です。開いたフォームにあるテキストボックスの部分が
穴が開いて下のフォームが一瞬見えるみたいな感じです。

>てのはちょっとおかしいかもしれません。
>DataGridView 等への表示データの設定は、どんなタイミングで行っていますか?

すみません、DatGridViewでは無くて、↑と一緒で テキストボックスの部分っぽいです。

>コントロールがたくさんある場合は
>WS_EX_COMPOSITEDを設定したPanelに、コントロールを全部のっけてやってください。
>それで時間差はなくなります。

これ、後でやってみたいと思います。
と言うか、Panel に WS_EX_COMPOSITEDを設定 ←プロパティにある?
を調べます。

>No11413はまとめですから
>実装の仕方まで書いてませんね。
>キーワードは列挙されてますので
>検索などで簡単に調べられると思います。

はい、でも議論でなんとなくですが、勉強になりました。
もうちょっと詳しく調べてみます。

長々とすみません・・・・
引用返信 編集キー/
■15149 / inTopicNo.12)  Re[4]: フォームを開くときチラツク・・・・
□投稿者/ れい (438回)-(2008/03/05(Wed) 12:24:36)
No15146 (ぽん他 さん) に返信
> はい、沢山あります。数えると70↑ぐらいです。
> 最初の考え方に問題があったみたいです。
> 大体みなさん、何個ぐらいが使い手のことも考えて
> 良いと考えるのでしょうか?(表示も考えて)

普通に設計するとそんなに多くなることがないですね。

どうしても多くなるときもありますが。
コントロールを使わないで自分で描けばいいので、
コントロールが何十個も置かねばならないというのは殆どないです。

普通テキストボックス+コンボボックスで10個も使わないかな。
ボタンも多くて5〜6個になることが殆どです。

>ボタン21個(ファンクションキー割り当て予定)

もうこれだけでおかしいような。
ファンクションキーというのが何かわからないですが、
常に見えてる必要が本当にあるのでしょうか?
メニューに入れたらいいのではないですか?

いろいろなソフトに触れてみて、
UIを参考にするといいと思います。
引用返信 編集キー/
■15151 / inTopicNo.13)  Re[4]: フォームを開くときチラツク・・・・
□投稿者/ 渋木宏明(ひどり) (667回)-(2008/03/05(Wed) 12:45:00)
渋木宏明(ひどり) さんの Web サイト
> はい、沢山あります。数えると70↑ぐらいです。

一般的な業務アプリなら、確実に「多い(多すぎる)」です。

そもそも、本当に同時にそんなに沢山のペインを表示して、かつそれらに対して操作ができなければならないもんなんでしょうか?
制御系なんかだと多くなったりする場合もありますが、使い勝手と Windows の都合の両面から、やはりコントロールの数は抑えるべきです。

表示項目が多いなら、サマリ表示の画面(Outlook で言う Today 画面)と複数の詳細画面に分けてしまってセレクタで詳細画面を切り替える、とか。
ボタンも、表示内容に対する操作であればツールバーにまとめるとか。

> 大体みなさん、何個ぐらいが使い手のことも考えて
> 良いと考えるのでしょうか?(表示も考えて)

フォーム1個当たり、20個以下ですね>じぶん

> はい、親フォームの内容です。開いたフォームにあるテキストボックスの部分が
> 穴が開いて下のフォームが一瞬見えるみたいな感じです。

てことは、やはりコントロールの数が多いのが問題なのかな?


引用返信 編集キー/
■15153 / inTopicNo.14)  Re[5]: フォームを開くときチラツク・・・・
□投稿者/ ぽん他 (22回)-(2008/03/05(Wed) 13:18:06)
渋木宏明(ひどり) さん、れいさん
お返事ありがとうございます。ぽん他です。

>どうしても多くなるときもありますが。
>コントロールを使わないで自分で描けばいいので、
>コントロールが何十個も置かねばならないというのは殆どないです。
>普通テキストボックス+コンボボックスで10個も使わないかな。
>ボタンも多くて5〜6個になることが殆どです。

なるほど。そういうものなのですね。
どうも何か勘違いしてるようです、私。
確かに操作する方を考えると簡単が一番ですし。

>>ボタン21個(ファンクションキー割り当て予定)
>もうこれだけでおかしいような。
>ファンクションキーというのが何かわからないですが、
>常に見えてる必要が本当にあるのでしょうか?
>メニューに入れたらいいのではないですか?

これがもう既に私の勘違いかと思います(たぶん)
すみません、言い方が判らなかったもので、
ファンクションキーとは、キーボードの上に並んでいる、
F1〜F12キーのことで、Shift+ で20個以上になるのが
普通なのかと・・・こういう場合は多分ボタンではなくて、
自分で描くと言うことなのですか?
#ほとんどがキーボードで操作できるように考えてます。

>UIを参考にするといいと思います。

はい。最初に参考にしたのがレジのアプリだったので、
下にボタンが並んでまして、同じようなものを勉強がてらどうかと・・・・苦


>一般的な業務アプリなら、確実に「多い(多すぎる)」です。
>そもそも、本当に同時にそんなに沢山のペインを表示して、かつそれらに対して操作ができなければならないもんなんでしょうか?
>制御系なんかだと多くなったりする場合もありますが、使い勝手と Windows の都合の両面から、やはりコントロールの数は抑えるべきです。

はい、機能を考え直し省けるものは省いてみたいと思います。

>表示項目が多いなら、サマリ表示の画面(Outlook で言う Today 画面)と複数の詳細画面に分けてしまってセレクタで詳細画面を切り替える、とか。
>ボタンも、表示内容に対する操作であればツールバーにまとめるとか。

はい、ちょっと考えて見ます。
と言うか、セレクタを調べてみます。

>フォーム1個当たり、20個以下ですね>じぶん

やはり、そんなものなのですね。
ほんと、いろいろ見て勉強してみます。

>> はい、親フォームの内容です。開いたフォームにあるテキストボックスの部分が
>> 穴が開いて下のフォームが一瞬見えるみたいな感じです。
>てことは、やはりコントロールの数が多いのが問題なのかな?

判りませんが、上記のお話しの内容からすると、そういうもので、
コントロールの数の問題と考えて、減らす方向で考えて見ます。

いつも、丁寧なお返事ありがとうございます。

引用返信 編集キー/
■15154 / inTopicNo.15)  Re[6]: フォームを開くときチラツク・・・・
□投稿者/ れい (439回)-(2008/03/05(Wed) 13:28:57)
No15153 (ぽん他 さん) に返信
> これがもう既に私の勘違いかと思います(たぶん)
> すみません、言い方が判らなかったもので、
> ファンクションキーとは、キーボードの上に並んでいる、
> F1〜F12キーのことで、Shift+ で20個以上になるのが
> 普通なのかと・・・こういう場合は多分ボタンではなくて、
> 自分で描くと言うことなのですか?
> #ほとんどがキーボードで操作できるように考えてます。


キーボードの上のファンクションキーと
画面のボタンが対応してるのですか?

ファンクションキーに対応したボタンが画面に見えている必要があるなら、
私なら自分で描くと思います。
でもめんどくさいですね。

普通は見えている必要はないのでメニューに入れると思います。

引用返信 編集キー/
■15155 / inTopicNo.16)  Re[7]: フォームを開くときチラツク・・・・
□投稿者/ まどか (483回)-(2008/03/05(Wed) 13:45:40)
No15154 (れい さん) に返信
> 普通は見えている必要はないのでメニューに入れると思います。

よくわかるけど、業務アプリによってはメニューコントロール自体ないですからねぇ。。。

引用返信 編集キー/
■15157 / inTopicNo.17)  Re[8]: フォームを開くときチラツク・・・・
□投稿者/ れい (440回)-(2008/03/05(Wed) 13:55:46)
No15155 (まどか さん) に返信
> よくわかるけど、業務アプリによってはメニューコントロール自体ないですからねぇ。。。

メニューを使えないなら
仕方ないのでKeyPreviewしてKeyPressで処理かな。

どうしてもたくさん並べたいなら「たくさん並んだボタン」コントロールを自分で作りますが、
自分で描くのも、標準と同じような動作をするようにコーディングするのも、
激しくめんどくさい。

デザインがおかしいのは明白だけど、
時間の都合とか政治的都合とかやる気の都合があるなら
WS_EX_COMPOSITEDなパネルを使ってごまかすのが一番楽ですね。

重い場合は速いPCに変える。
引用返信 編集キー/
■15181 / inTopicNo.18)  Re[9]: フォームを開くときチラツク・・・・
□投稿者/ PATIO (14回)-(2008/03/06(Thu) 11:16:28)
2008/03/06(Thu) 11:18:07 編集(投稿者)

>>よくわかるけど、業務アプリによってはメニューコントロール自体ないですからねぇ。。。
>
> メニューを使えないなら
> 仕方ないのでKeyPreviewしてKeyPressで処理かな。

ボタンとして押せる必要があるのかと言うのも気になりますね。
ファンクションキーに割り当てられている機能が見たいだけなら
単なる絵でも構わないような気がします。
押せる必要が無いのであればですけれど。

本当にそれだけの情報を一度にみる必要があるのかと言うのも検討の必要があるかと。
多分慣れていたとしても70個のコントロールが表示している内容を一度に認識する
のは無理じゃないかと。
本当に一度で見たい物だけを常時表示するようにして
付加的な情報はタブで切り替えるとかした方が良いと思います。
常時表示すべきものと切り替えて表示でも構わない物に分ければ、
もう少し画面が整理できないかなぁ。

引用返信 編集キー/
■15187 / inTopicNo.19)  Re[10]: フォームを開くときチラツク・・・・
□投稿者/ まどか (484回)-(2008/03/06(Thu) 13:09:35)
No15181 (PATIO さん) に返信
> ボタンとして押せる必要があるのかと言うのも気になりますね。
> ファンクションキーに割り当てられている機能が見たいだけなら
> 単なる絵でも構わないような気がします。
> 押せる必要が無いのであればですけれど。

レジという言葉が出てきてるので、今回の場合ボタンの存在価値はあるんじゃないかなとも思います。
あとは共通の概念ならユーザーコントロール作って基底フォームに貼ってなんてのもありますね。

まぁ、数を減らせが最優先ではないことは確かなので、まず機能分割設計ですね。
それをやりつくしたうえで、必要なコントロール数が70であれば、後は妥協or工夫するしかないですね。

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -