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

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

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

Re[8]: VB.NET(2008)でのフォーム画面の切り替え


(過去ログ 98 を表示中)

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

■58226 / inTopicNo.1)  VB.NET(2008)でのフォーム画面の切り替え
  
□投稿者/ VB始めました (1回)-(2011/03/29(Tue) 16:04:02)

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

お世話になります。
VB.NETでのフォーム画面の切り替えの方法について質問があります。
現在Form1とFrom2というフォームを作成しております。
各2つのフォームにそれぞれボタンコントロールを置いています。
そのボタンを押すことでForm1⇔Form2を画面切り替えをしています。
その切り替えの際に後ろにあるデスクトップ画面がどうしても一瞬見えてしまいます。
切り替えを滑らかにやるにはどうすればよいのでしょうか。(後ろのデスクトップ画面が見えないようにしたい)
ShowイベントのあとにVisbleプロパティをFalseにしたりHideにしても同じになってしまいました。

下記に簡単ではありますが仕様を書いております。
スタートアップはFrom1に設定
[Form1]の概要
ボタンコントロールを追加
このボタンのクリックイベントにてクリックされたら
Dim f new From2
f2.Show()
Me.Close()
From2を表示して自分(Form1)を閉じています
あとはフォームをフルスクリーン化しています。

[Form2]の概要
ボタンコントロールを追加
このボタンのクリックイベントにてクリックされたら
Dim f new From1
f1.Show()
Me.Close()
From1を表示して自分(Form2)を閉じています
あとはフォームをフルスクリーン化しています。

引用返信 編集キー/
■58227 / inTopicNo.2)  Re[1]: VB.NET(2008)でのフォーム画面の切り替え
□投稿者/ マサヤ (303回)-(2011/03/29(Tue) 16:19:46)
初めからフォームを二つとも開いておいて、ボタンでActiveを切り替えたらいかがでしょうか?
引用返信 編集キー/
■58229 / inTopicNo.3)  Re[2]: VB.NET(2008)でのフォーム画面の切り替え
□投稿者/ VB始めました (2回)-(2011/03/29(Tue) 16:41:42)
No58227 (マサヤ さん) に返信
> 初めからフォームを二つとも開いておいて、ボタンでActiveを切り替えたらいかがでしょうか?
さっそくの回答ありがとうございます。試してみます。

詳細を記載していなかったのですが、フォーム1にテキストボックスがあってそこに入力された値を
フォーム2に用意しておいたプロパティに受け渡しています。その入力された値を基にDBから必要な情報を
引き出しています。引き出した情報はPictureBoxのimageにGraphicsオブジェクトで描画しています。
上記処理をLoadイベントに行っています。
もしインスタンス生成を切り替えごとに行わなかった場合Loadイベントって起きないのですか?
だとしたらフォームがアクティブになったときのイベントで上記処理をおこなわないといけないのでしょうか?
自分自身どういう切り替えがスマートなのか分かっていません。
引用返信 編集キー/
■58230 / inTopicNo.4)  Re[3]: VB.NET(2008)でのフォーム画面の切り替え
□投稿者/ shu (576回)-(2011/03/29(Tue) 17:13:11)
別のフォームをスタートアップにして枠なしで全画面にしておき、
そこから最初のフォームを開いて以降同じ処理をして、最後にスタートアップフォームを
閉じるのはどうでしょう?
引用返信 編集キー/
■58232 / inTopicNo.5)  Re[4]: VB.NET(2008)でのフォーム画面の切り替え
□投稿者/ マサヤ (304回)-(2011/03/29(Tue) 17:21:54)
No58230 (shu さん) に返信
> 別のフォームをスタートアップにして枠なしで全画面にしておき、
> そこから最初のフォームを開いて以降同じ処理をして、最後にスタートアップフォームを
> 閉じるのはどうでしょう?
→最初に背景フォームを作成する方法ですね。

引用返信 編集キー/
■58234 / inTopicNo.6)  Re[5]: VB.NET(2008)でのフォーム画面の切り替え
□投稿者/ VB始めました (3回)-(2011/03/29(Tue) 17:37:26)
No58232 (マサヤ さん) に返信
> ■No58230 (shu さん) に返信
>>別のフォームをスタートアップにして枠なしで全画面にしておき、
>>そこから最初のフォームを開いて以降同じ処理をして、最後にスタートアップフォームを
>>閉じるのはどうでしょう?
> →最初に背景フォームを作成する方法ですね。
>

背景フォームを用意してデスクトップ画面が現れないようにするんですね。
思ったのですが、フォームを複数用意して切り替えるのはあまりよくないのでしょうか。
1つのフォームで動的にコントロール配置していくか、Visbleプロパティなんかで
実現したほうがよいのでしょうか?
ご存知の方、または実際プログラムされたことがあるかた教えてください。
ゲームなんかではフロントバッファのバックバッファで描画を切り替えるみたいなんですが
VBでもそういう方法がとれるのかどうかも。
引用返信 編集キー/
■58235 / inTopicNo.7)  Re[6]: VB.NET(2008)でのフォーム画面の切り替え
□投稿者/ shu (577回)-(2011/03/29(Tue) 17:43:28)
No58234 (VB始めました さん) に返信

> 背景フォームを用意してデスクトップ画面が現れないようにするんですね。
> 思ったのですが、フォームを複数用意して切り替えるのはあまりよくないのでしょうか。
というか今回出てきたような画面の切り替わりが気にするような事ではないのが一般的ではないでしょうか?
Windowsアプリなんだし。



引用返信 編集キー/
■58255 / inTopicNo.8)  Re[6]: VB.NET(2008)でのフォーム画面の切り替え
□投稿者/ Azulean (721回)-(2011/03/29(Tue) 22:55:51)
No58234 (VB始めました さん) に返信
> 背景フォームを用意してデスクトップ画面が現れないようにするんですね。
> 思ったのですが、フォームを複数用意して切り替えるのはあまりよくないのでしょうか。

全画面を覆って、デスクトップが見えるのが美しくないとするアプリケーションはそんなに多くないと思います。
Windows を利用した組み込み環境なら別かもしれませんが。

# 普通に使うアプリケーションで全画面覆うタイプは邪魔という印象を覚えますね、個人的には。
引用返信 編集キー/
■58257 / inTopicNo.9)  Re[7]: VB.NET(2008)でのフォーム画面の切り替え
□投稿者/ じゃんぬねっと (58回)-(2011/03/29(Tue) 23:26:47)
じゃんぬねっと さんの Web サイト
ふつーは TabControl を使うとか、ダイアログ形式にするとか、オーナーフォーム形式 (最初から見せておく) にするとか、ウィザード系 (コンテナ コントロールの切替) とか... TabControl 以外の方法はいずれも A と B でモジュール分けはできているので、後はお好みでしょう。
引用返信 編集キー/
■58314 / inTopicNo.10)  Re[8]: VB.NET(2008)でのフォーム画面の切り替え
□投稿者/ VB始めました (5回)-(2011/03/30(Wed) 21:27:19)
No58257 (じゃんぬねっと さん) に返信
> ふつーは TabControl を使うとか、ダイアログ形式にするとか、オーナーフォーム形式 (最初から見せておく) にするとか、ウィザード系 (コンテナ コントロールの切替) とか... TabControl 以外の方法はいずれも A と B でモジュール分けはできているので、後はお好みでしょう。

遅くなりましたが、みなさん、ご意見ありがとうございます。参考にさせていただきます。
ちなみにFromA⇔B⇔CといってCの内部処理が終わったら自動的にAに戻るということをやりたいので
ダイヤログ形式は無理かもしれません。
僕の認識が正しいか分かりませんが全部表示、Activeで切り替えるオーナーフォーム形式?をとろうと思います。
コンテナコントロール(Panel)とかのほうがプログラム的にまとまった感はありますが。
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -