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

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

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

Re[8]: コントロールの描画


(過去ログ 98 を表示中)

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

■58324 / inTopicNo.1)  コントロールの描画
  
□投稿者/ VB始めました (6回)-(2011/03/31(Thu) 03:42:44)

分類:[VB.NET/VB2005 以降] 

お世話になります。
VB.NETでの質問です。Form上にPictureBoxコントロール×2(ボタンの代わりに使用)
Labelコントロール×4、テキストボックスコントロール×2を設置しています。
Form起動時に配置してあるコントロールが一瞬白く映りそれから描画されているように
みえますなぜでしょうか?
描画中かと思いダブルバッファ処理をTRUEに変更したのですが変わりません。
コントロール自体の描画処理なのでしょうか?ちらついた感じになるので対処したいです。
ご存知の方ご教授お願いいたします。
引用返信 編集キー/
■58326 / inTopicNo.2)  Re[1]: コントロールの描画
□投稿者/ shu (588回)-(2011/03/31(Thu) 08:17:37)
No58324 (VB始めました さん) に返信
> お世話になります。
> VB.NETでの質問です。Form上にPictureBoxコントロール×2(ボタンの代わりに使用)
> Labelコントロール×4、テキストボックスコントロール×2を設置しています。
> Form起動時に配置してあるコントロールが一瞬白く映りそれから描画されているように
> みえますなぜでしょうか?
> 描画中かと思いダブルバッファ処理をTRUEに変更したのですが変わりません。
> コントロール自体の描画処理なのでしょうか?ちらついた感じになるので対処したいです。
> ご存知の方ご教授お願いいたします。
表示されるまでに何か時間のかかる処理とかされていませんか?
引用返信 編集キー/
■58329 / inTopicNo.3)  Re[2]: コントロールの描画
□投稿者/ VB始めました (7回)-(2011/03/31(Thu) 09:29:13)
No58326 (shu さん) に返信
> ■No58324 (VB始めました さん) に返信
>>お世話になります。
>>VB.NETでの質問です。Form上にPictureBoxコントロール×2(ボタンの代わりに使用)
>>Labelコントロール×4、テキストボックスコントロール×2を設置しています。
>>Form起動時に配置してあるコントロールが一瞬白く映りそれから描画されているように
>>みえますなぜでしょうか?
>>描画中かと思いダブルバッファ処理をTRUEに変更したのですが変わりません。
>>コントロール自体の描画処理なのでしょうか?ちらついた感じになるので対処したいです。
>>ご存知の方ご教授お願いいたします。
> 表示されるまでに何か時間のかかる処理とかされていませんか?
お返事有難うございます。
時間のかかる処理はしていないと思っています。
LoadイベントにてPictureBox.imageに画像パスを設定しています。
各コントロールのサイズとTextとロケーションなどを設定しています
あとフォームのバックグランドイメージにも画像パスを設定しております。
PictureBoxのクリックイベントで次のフォームを開く処理をしております。
以上がしていることなのです。



引用返信 編集キー/
■58331 / inTopicNo.4)  Re[3]: コントロールの描画
□投稿者/ shu (590回)-(2011/03/31(Thu) 09:33:48)
No58329 (VB始めました さん) に返信

> LoadイベントにてPictureBox.imageに画像パスを設定しています。

> あとフォームのバックグランドイメージにも画像パスを設定しております。

この2点の画像読込に時間がかかっているかもしればいのでいったんはずしてみてはどうでしょう?
はずしても変化がなければPCスペックの問題になってしまいそうです。
はずして変化があるようなら画像の読込方法を改善する必要がありそうです。
引用返信 編集キー/
■58333 / inTopicNo.5)  Re[4]: コントロールの描画
□投稿者/ VB始めました (8回)-(2011/03/31(Thu) 09:55:19)
No58331 (shu さん) に返信
> ■No58329 (VB始めました さん) に返信
>
>>LoadイベントにてPictureBox.imageに画像パスを設定しています。
>
>>あとフォームのバックグランドイメージにも画像パスを設定しております。
>
> この2点の画像読込に時間がかかっているかもしればいのでいったんはずしてみてはどうでしょう?
> はずしても変化がなければPCスペックの問題になってしまいそうです。
> はずして変化があるようなら画像の読込方法を改善する必要がありそうです。

Loadイベントでやっている処理をコメントアウトしたのですがやはり同じ症状となります。
ちなみにPCのスペックはCPU intel CORE i5 のメモリ2Gなのですがスペックの問題なのでしょうか?
それともデザインの時にコントロール配置でおかしいことしたのかな。
引用返信 編集キー/
■58335 / inTopicNo.6)  Re[5]: コントロールの描画
□投稿者/ shu (591回)-(2011/03/31(Thu) 10:16:26)
No58333 (VB始めました さん) に返信

> Loadイベントでやっている処理をコメントアウトしたのですがやはり同じ症状となります。
> ちなみにPCのスペックはCPU intel CORE i5 のメモリ2Gなのですがスペックの問題なのでしょうか?
> それともデザインの時にコントロール配置でおかしいことしたのかな。
OSにもよるし(メモリ2GはVista,7ではちょっときついこともある)、
他に動いている物(ウィルス対策系のものとか)とかにもよるし、
ビデオがオンボードだったりロースペックだったりすると描画が遅れる可能性もある。

VB始めました さんが実装した内容が複雑なものとは思えないのでそれが現状だと思うのが自然かと思います。

さらにやるなら新規から1個1個足していって確認するとかですかね。
引用返信 編集キー/
■58338 / inTopicNo.7)  Re[6]: コントロールの描画
□投稿者/ VB始めました (9回)-(2011/03/31(Thu) 10:39:39)
No58335 (shu さん) に返信
> ■No58333 (VB始めました さん) に返信
>
>>Loadイベントでやっている処理をコメントアウトしたのですがやはり同じ症状となります。
>>ちなみにPCのスペックはCPU intel CORE i5 のメモリ2Gなのですがスペックの問題なのでしょうか?
>>それともデザインの時にコントロール配置でおかしいことしたのかな。
> OSにもよるし(メモリ2GはVista,7ではちょっときついこともある)、
> 他に動いている物(ウィルス対策系のものとか)とかにもよるし、
> ビデオがオンボードだったりロースペックだったりすると描画が遅れる可能性もある。
>
> VB始めました さんが実装した内容が複雑なものとは思えないのでそれが現状だと思うのが自然かと思います。
>
> さらにやるなら新規から1個1個足していって確認するとかですかね。

細かく調べたら以下の三行があるかないかで変化がありました。
Me.FormBorderStyle = Windows.Forms.FormBorderStyle.FixedDialog
Me.MaximizeBox = False
Me.MinimizeBox = False
なければ症状が改善されました。
とりあえず、すべてのコントロールのVisbleをデフォルトFalseに設定し
ShownイベントでTrueにすることで上記三行をいれていても症状はおきなくなりました。
この症状がおきる明確な理由がお分かりでしたら教えてください。お願いします。
引用返信 編集キー/
■58345 / inTopicNo.8)  Re[7]: コントロールの描画
□投稿者/ べーやん (1回)-(2011/03/31(Thu) 11:19:39)
No58338 (VB始めました さん) に返信
> 細かく調べたら以下の三行があるかないかで変化がありました。
> Me.FormBorderStyle = Windows.Forms.FormBorderStyle.FixedDialog
> Me.MaximizeBox = False
> Me.MinimizeBox = False
> なければ症状が改善されました。

この処理はどこで行っていましたか?
Loadイベントハンドラ内でしょうか?
Load時にFormBorderStyle等のプロパティを変更すると、フォームを再描画することになるのではないかと思いますので
デザイナ上でプロパティ設定するかコンストラクタで設定すれば何の問題もなさそうですが、
コード上でこれらプロパティを設定する理由は何でしょうか?
引用返信 編集キー/
■58403 / inTopicNo.9)  Re[8]: コントロールの描画
□投稿者/ VB始めました (10回)-(2011/04/03(Sun) 10:28:26)
No58345 (べーやん さん) に返信
> ■No58338 (VB始めました さん) に返信
>>細かく調べたら以下の三行があるかないかで変化がありました。
>>Me.FormBorderStyle = Windows.Forms.FormBorderStyle.FixedDialog
>>Me.MaximizeBox = False
>>Me.MinimizeBox = False
>>なければ症状が改善されました。
>
> この処理はどこで行っていましたか?
> Loadイベントハンドラ内でしょうか?
> Load時にFormBorderStyle等のプロパティを変更すると、フォームを再描画することになるのではないかと思いますので
> デザイナ上でプロパティ設定するかコンストラクタで設定すれば何の問題もなさそうですが、
> コード上でこれらプロパティを設定する理由は何でしょうか?

お返事がおくれました。
フォームのコンストラクタでやることが普通だと思いますが、深く考えずLoadイベント記述しておりました。
改めて書きなおすことにします。
ご指摘ありがとうございます。

解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -