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

モジュールからフォームのプロパティーを変更する。

環境/言語:[Windows 2000, VB.NET]
分類:[.NET]

はじめまして、初めて半月の初心者です。宜しくお願いします。

フォームは1つで、タブで切替えていろんな処理をするアプリを考えています。
Form1 に全部の処理のコードを書くと煩雑になるので、処理グループ毎に
モジュールにして、その結果をフォームに表示しようと思います。
下記のようにやってみたのですが、ダメでした。
Dim f As New Form1
f.TextBox1.Text = "aaa"
f.Dispose()
どのような方法があるのでしょうか。
標準的なやりかたとかはあるのでようか。
2004/07/11(Sun) 03:50:50 編集(投稿者)

■No4699に返信(小澤さんの記事)
> はじめまして、初めて半月の初心者です。宜しくお願いします。
>
> フォームは1つで、タブで切替えていろんな処理をするアプリを考えています。
> Form1 に全部の処理のコードを書くと煩雑になるので、処理グループ毎に
> モジュールにして、その結果をフォームに表示しようと思います。
> 下記のようにやってみたのですが、ダメでした。
> Dim f As New Form1
> f.TextBox1.Text = "aaa"
> f.Dispose()
> どのような方法があるのでしょうか。
> 標準的なやりかたとかはあるのでようか。
>

う〜ん、どうしたいのか具体的に解りづらいのですが…

まぁソースを見る限りの答えとしては、いきなりf.Dispose()をしたらフォームが開く前にリソースが解放されてしまい、フォーム制御どころの話になりません。
f.ShowDialog()をf.Dispose()の前に入れてみてください。
■No4701に返信(ペガサス研究室さんの記事)
> ■No4699に返信(小澤さんの記事)

> う〜ん、どうしたいのか具体的に解りづらいのですが…

説明の仕方が悪かったので、もう一度書きます。
1.Form1 のボタンを押すとForm1 のイベントハンドラから
標準モジュールの関数を呼ぶ。
2.標準モジュールの関数で、色々な処理をし、結果を Form1
の画面に反映させる。
3.Form1 には沢山のボタンがある。それぞれのイベントハ
ンドラの、実際の処理を別のモジュールに記述したい。
4.処理の結果の反映は複数ある。
2004/07/11(Sun) 03:51:11 編集(投稿者)

小澤さん、おはようございます。

> 説明の仕方が悪かったので、もう一度書きます。
> 1.Form1 のボタンを押すとForm1 のイベントハンドラから
> 標準モジュールの関数を呼ぶ。
> 2.標準モジュールの関数で、色々な処理をし、結果を Form1
> の画面に反映させる。
> 3.Form1 には沢山のボタンがある。それぞれのイベントハ
> ンドラの、実際の処理を別のモジュールに記述したい。
> 4.処理の結果の反映は複数ある。
>

なるほど、Form1とは関係ないクラス上(ここでは標準モジュールを指す)の関数で制御したいと言う事ですね。
簡単なやり方として、関数の引数にフォームをあてる方法があります。
例えば、
Public Sub Hoge(ByVal frm As Form1)
  frm.Button1.text = "テスト"
End Sub
とする方法があります。
ペガサス研究室さん、ありがとうございました。

> なるほど、Form1とは関係ないクラス上(ここでは標準モジュールを指す)の関数で制御したいと言う事ですね。
> 簡単なやり方として、関数の引数にフォームをあてる方法があります。
> 例えば、
> Public Sub Hoge(ByVal frm As Form1)
>   frm.Button1.text = "テスト"
> End Sub
> とする方法があります。

上記の方法で、目的通りの結果が得られました。
解決済み!

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