メインのクラスAにウェブブラウザAがあります。
クラス A {
メソッドA(){
ウェブブラウザA.Navigate(URL);
}
メソッドC(){
MessageBox.Show("これは成功");
}
}
クラス B {
メソッドB(ウェブブラウザA){
ウェブブラウザA.Navigate(URL);//成功
}
A a = new A();
a.メソッドA();//失敗
a.メソッドC();//成功
}
このようなプログラムを作っています。
クラスBをインスタンスして実行すると
クラスBのメソッドBは成功しますが、クラスAの方で宣言しているa.メソッドAは失敗します
しかし、a.メソッドC();は成功します。
これは、a.メソッドAは、その上のA a = new A();でつくられた新しいインスタンスのなかで処理がされていて起動時につくられたクラスAのインスタンスとは別のものになっているからだと思うのですが、まちがいないでしょうか?
この処理を成功させたい場合、起動時に作られたクラスAのインスタンスをメソッドBの引数に参照渡しですれば、
メソッドB(ウェブブラウザA){
ウェブブラウザA.Navigate(URL);//成功
メソッドA();
}
も可能なのではないかと考えているのですが、可能でしょうか?またそのインスタンスを引数にする方法はどのようなものでしょうか?
ちなみに、クラスBはDLLに置いてあり、メソッドAは複数のDLLで使うので毎度書くのは面倒なのでクラスAの中で呼び出して使いたいと考えています。
No.2
- 回答日時:
何か意味不明なC#もどき言語が書かれているので、こちらとしては説明が面倒なんですけど・・・
>これは、a.メソッドAは、その上のA a = new A();でつくられた新しいインスタンスのなかで処理がされていて起動時につくられたクラスAのインスタンスとは別のものになっているからだと思うのですが、まちがいないでしょうか?
>メソッドA(){
> ウェブブラウザA.Navigate(URL);
>
ここで書かれている「ウェブブラウザA」というのがクラスAのインスタンス変数なら、それであっています。
>この処理を成功させたい場合、起動時に作られたクラスAのインスタンスをメソッドBの引数に参照渡しですれば、
クラスBのインスタンスメソッドBを呼び出すとき、起動時に作成したクラスAのインスタンスのウェブブラウザA(に入っているもの)を渡してるんじゃないんですか?
そのウェブブラウザA(には入っているもの)はWebBrowserクラスのインスタンスではないの?
変数という入れ物とインスタンスを区別できてなさそうな。
この回答への補足
返信遅くなってしまって申し訳ありません。
私の説明不足のようなので問題の部分のプログラムだけを抜き出したののを作ってみました。
http://1drv.ms/1krjNRG
省略ているためボタンが直接Form1にありますが、MDIの子フォームに表示させる予定です。
ボタン2でも同じように表示されているウェブブラウザにGoogleを表示させたいです。どのような方法があるでしょうか?
No.3ベストアンサー
- 回答日時:
>ボタン2でも同じように表示されているウェブブラウザにGoogleを表示させたいです。
どのような方法があるでしょうか?「void Form1::ウェブブラウザ(string URL)」を使ってという事なら
public void DLL関数2(Form1 form1)
{
form1.ウェブブラウザ("http://google.com");
}
にして、
item1.DLL関数2(this);
と、とすればいいだけだけど(interfaceは適切に変更してるとしてください)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
推しミネラルウォーターはありますか?
推しミネラルウォーターがあったら教えてください
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
FORMが開いているかどうかの確認方法
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CloseとDisposeの違い
-
C# 超初心者です。 this.Refres...
-
[C#]FormクラスのShowメソッド...
-
「ご処理進めて頂きますようお...
-
エクセルで、日付を入力すると...
-
エクセルVBAで、MsgBox やInput...
-
メルカリのメルカードで買い物...
-
月度は何て読みますか?
-
findは動くがfindnextがマクロ...
-
アクセスVBAのMe!と[ ]
-
UMLでの例外処理
-
VBAでループ内で使う変数名を可...
-
switch の範囲指定
-
【Excel】特定の文字を含むセル...
-
ユーザーフォーム上にアイコン...
-
【VB】タブ切り替え時のイベント
-
Excelシート上のマクロを登録し...
-
ACCESS VBAでテーブル内の特定...
-
Googleフォーム・複数人の申し...
-
DoEventsがやはり分からない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CloseとDisposeの違い
-
C# 超初心者です。 this.Refres...
-
[C#]FormクラスのShowメソッド...
-
C#のインスタンスを参照渡ししたい
-
DLL内のイベントをハンドリング
-
vb.net フォームアプリケーシ...
-
VB.NET スプラッシュスクリー...
-
どういうプログラムで組みます...
-
Objective-C,viewが動作しない
-
OCXのメソッドの引数に文字列を...
-
フィールド(メンバ変数)のプリ...
-
[swift]動的なキーを持つJSONの...
-
Pythonについて 関数の仮引数に...
-
objective-Cについてご相談があ...
-
「ご処理進めて頂きますようお...
-
エクセルで、日付を入力すると...
-
VBAでループ内で使う変数名を可...
-
Excelシート上のマクロを登録し...
-
エクセルVBAで、MsgBox やInput...
-
UPS警告音を止めたい
おすすめ情報