DOBON.NET DOBON.NETプログラミング掲示板過去ログ

フォーム開始時のプロシージャ処理

環境/言語:[WinXP VB.NET Framework1.1]
分類:[.NET]

始めましてハズメストと申します。
.NETはまったくもって初心者なんで宜しくお願いいたします。

ちょっと質問なんですが、VB.NETで
モジュールに書いてあるプロシージャを
フォーム起動時(Form_Load)に呼び出すことは不可能なのでしょうか?

フォーム起動時以外なら通常通り呼び出すことが可能なんですが、
フォーム起動時に限り「オブジェクト参照がオブジェクト インスタンスに設定されていません。」と
吐かれます。

モジュール内に書いてあるプロシージャを同じフォームに書くしかないのでしょうか?

宜しくお願いいたします。
> ちょっと質問なんですが、VB.NETで
> モジュールに書いてあるプロシージャを
> フォーム起動時(Form_Load)に呼び出すことは不可能なのでしょうか?

特に問題なくできると思います。

> フォーム起動時以外なら通常通り呼び出すことが可能なんですが、
> フォーム起動時に限り「オブジェクト参照がオブジェクト インスタンスに設定されていません。」と
> 吐かれます。

そのプロシージャ内で参照している変数でインスタンス未作成のものがあるのでしょう。
そのまんまのエラーです。

> モジュール内に書いてあるプロシージャを同じフォームに書くしかないのでしょうか?

純粋にそのプロシージャに書いてある内容をFormのLoadイベントに
移すだけであれば、同様のエラーがでるだけだと思います。
ステップ実行するなりして、何が問題なのか?をはっきりさせましょう。
■No6774に返信(よねKENさんの記事)
>> フォーム起動時以外なら通常通り呼び出すことが可能なんですが、
>> フォーム起動時に限り「オブジェクト参照がオブジェクト インスタンスに設定されていません。」と
>> 吐かれます。

> そのプロシージャ内で参照している変数でインスタンス未作成のものがあるのでしょう。
> そのまんまのエラーです。

> 純粋にそのプロシージャに書いてある内容をFormのLoadイベントに
> 移すだけであれば、同様のエラーがでるだけだと思います。
> ステップ実行するなりして、何が問題なのか?をはっきりさせましょう。

よねKENさん返信有難う御座います。
自分なりに分析してみた結果モジュールからの呼び出しは
問題なかったようです。

Form_Loadプロシージャの他にForm_Resizeプロシージャからも
モジュールから同じプロシージャを呼び出しているんですが、
どうやらForm_Resizeプロシージャからエラーが出てしまうようなんです。
Form_Loadプロシージャから呼び出した場合はエラーにならず、
Form_Resizeプロシージャから呼び出した場合はエラーとなってしまいます。
Resizeの場合はLoad時とはまた別の処理をした方がよろしいのでしょうか?

因みにモジュールの方の処理は以下のような感じです。

Module MainModule
Public frm1 As Form1 = New Form1

Public Sub FormInitialize()
frm1.MainTab.Width = frm1.Width  ←エラーの場所
frm1.MainTab.Height = frm1.Height
End Sub
End Module

TabControlをフォームサイズに合わせるという処理を作っているのですが、
うまくいきません。

よろしければご教授の程宜しくお願いいたします。
■No6781に返信(ハズメストさんの記事)
> TabControlをフォームサイズに合わせるという処理を作っているのですが、
> うまくいきません。

単純にTabControlをフォームサイズに合わせるだけであれば、
TabControlのDockプロパティをFillにしてやれば、
フォームサイズに自動的に合わせてくれます。

フォームの端に接した状態にしたくない場合は、
DockプロパティをNoneにして、
Anchorプロパティを設定すれば、OKです。
よねKENさん、rakiさんありがとうございました。

あの後も自分なりに分析していった結果、
Form_Loadプロシージャをスタートアップにするのではなく、
Sub Mainをスタートアップにしてフォームを表示するまでに
した準備をさせた結果、モジュールからの呼び出しが出来るようになりました。

よねKENさん、rakiさん本当に有難う御座いました。
また、くだらない質問をしてしまう場合があると思いますが、
その時はまたよろしくお願いいたします。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板