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

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

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

Re[2]: Call関数を使って


(過去ログ 13 を表示中)

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

■4050 / inTopicNo.1)  Call関数を使って
  
□投稿者/ いか天 (4回)-(2007/06/05(Tue) 09:16:26)

分類:[VB.NET (Windows)] 

お世話になります。いか天です。
現在ファイル操作の勉強をしています。
OpenFileDialogとSaveFileDialogについての質問なのですが、この二つを
標準モジュールに置いて、Call関数で呼び出すことは可能でしょうか?
今自分でも一通り試しているのですが、動かないので質問させていただきました。

どなたかご教授お願いします。
引用返信 編集キー/
■4051 / inTopicNo.2)  Re[1]: Call関数を使って
□投稿者/ とりこびと (17回)-(2007/06/05(Tue) 09:41:20)
とりこびと さんの Web サイト
こんにちは。とりこびとです。

No4050 (いか天 さん) に返信

> OpenFileDialogとSaveFileDialogについての質問なのですが、この二つを
> 標準モジュールに置いて、Call関数で呼び出すことは可能でしょうか?

可能だと思います。

> 今自分でも一通り試しているのですが、動かないので質問させていただきました。

その試したことを教えてください。また、動く、動かないとはどういうことかも書いていただけると状況がはっきりして解決が早まるかもしれません。

よろしくおねがいします。
引用返信 編集キー/
■4052 / inTopicNo.3)  Re[2]: Call関数を使って
□投稿者/ いか天 (5回)-(2007/06/05(Tue) 09:57:30)
No4051 (とりこびと さん) に返信
とりこびと様、お返事ありがとうございます。

今自分はフォームモジュールが
二つあり、各フォームにOpenFileDialog,SaveFileDialogと分けています。

すいません。動かないという表現は不適切でした。
今自分が行っているのは、グローバル変数の中に、OpenFileDialog,SaveFileDialogを代入しようとしていたのですが、

glb_Open = frmA.OpenFileDialog1.FileName

glb_Save = frmB.SaveFileDialog1.FileName


(非共有メンバを参照するには、オブジェクト参照が必要です)と出てしまいます。
考え方そのものが間違っているのでしょうか??
よろしくお願いします。
引用返信 編集キー/
■4053 / inTopicNo.4)  Re[3]: Call関数を使って
□投稿者/ 未記入 (90回)-(2007/06/05(Tue) 10:03:45)
可能だけどやめた方がいいですね。モジュールにおけるカプセル化というのを意識していないのはまずいでしょう。これはオブジェクト指向以前にモジュールという考え方の問題でありその歴史は古いはずですが、守られていないケースが多いのもこれまた事実のようですね。
引用返信 編集キー/
■4055 / inTopicNo.5)  Re[4]: Call関数を使って
□投稿者/ ゴン (3回)-(2007/06/05(Tue) 10:37:36)

こんにちは。ゴンです。

未記入さんから既にツッコミが入っていますが、とりあえず横に置いておいて・・・
もう少し周囲のコード(または最低限の再現コード)を公開しないと分からない気がします。

>今自分が行っているのは、グローバル変数の中に、OpenFileDialog,SaveFileDialogを代入しようとしていたのですが、
>glb_Open = frmA.OpenFileDialog1.FileName

ちなみに、モジュール側の変数にセットするのはきっと、多分、特に問題無くできる思うのですが・・・
※イヤ、VB.NETは使ったこと無いので嘘ついてるかもしれませんが。
引用返信 編集キー/
■4064 / inTopicNo.6)  Re[1]: Call関数を使って
□投稿者/ 魔界の仮面弁士 (289回)-(2007/06/05(Tue) 12:54:27)
# 標準モジュール内に、特定のフォームに依存するようなコードを含めるべきではありませんが、それはともかく。

No4050 (いか天 さん) に返信
> 標準モジュールに置いて、Call関数で呼び出すことは可能でしょうか?

Call は「関数」ではありません。「ステートメント」ですよ。


> glb_Open = frmA.OpenFileDialog1.FileName
VB.NET 2002/2003 でしょうか?

Module 内から上記を呼び出すのであれば、下記の点を確認してみてください。
 (1) frmA という「変数」が宣言されているか?
 (2) その変数に、フォームのインスタンスを代入してあるか?
 (3) フォーム上の OpenFileDialog1 は、デザイン時の Modifiers プロパティが
  Friend または Public に設定されているか。
引用返信 編集キー/
■4086 / inTopicNo.7)  Re[2]: Call関数を使って
□投稿者/ いか天 (6回)-(2007/06/06(Wed) 09:52:07)
おはようございます。
お礼が遅くなりまして申し訳ございません。

ゴン様
>ちなみに、モジュール側の変数にセットするのはきっと、多分、特に問題無くできる思うのですが・・・
どうにか出来ました、アドバイスありがとうございました。


魔界の仮面弁士様
>VB.NET 2002/2003 でしょうか?
2003でございます。

>Module 内から上記を呼び出すのであれば、下記の点を確認してみてください。
 >(1) frmA という「変数」が宣言されているか?
 >(2) その変数に、フォームのインスタンスを代入してあるか?
 >(3) フォーム上の OpenFileDialog1 は、デザイン時の Modifiers プロパティが
  >Friend または Public に設定されているか。

ご指示していただいた通り、一つ一つ確認していった結果、出来ました。
ありがとうございました。

今は
If frmA.SaveFileDialog1.ShowDialog() = DialogResult.OK Then
strFileName = frmA.SaveFileDialog1.FileName
Else
Exit Function
End If

If frmB.SaveFileDialog1.ShowDialog() = DialogResult.OK Then
strFileName = frmB.SaveFileDialog1.FileName
Else
Exit Function
End If

行いましたが、今日はこのIf文を一つにまとめようと思います。

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


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

このトピックに書きこむ

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

管理者用

- Child Tree -