メインのクラス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.3ベストアンサー
- 回答日時:
>ボタン2でも同じように表示されているウェブブラウザにGoogleを表示させたいです。
どのような方法があるでしょうか?「void Form1::ウェブブラウザ(string URL)」を使ってという事なら
public void DLL関数2(Form1 form1)
{
form1.ウェブブラウザ("http://google.com");
}
にして、
item1.DLL関数2(this);
と、とすればいいだけだけど(interfaceは適切に変更してるとしてください)
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を表示させたいです。どのような方法があるでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) どういうプログラムで組みますか?google colabでやってるんですけど、出来る方お願いします。 1 2022/07/17 18:41
- その他(プログラミング・Web制作) どういうプログラムで組みますか?google colabでやってるんですけど、出来る方お願いします。 1 2022/07/06 09:28
- Java java 飾子を付けること(public static・・・) ・コンソールへの出力処理はmainメ 2 2022/06/16 19:34
- Java javaの質問です 次の機能を有するメソッド4つを自クラスに作成し、実装したいです 【機能】 足し算 1 2022/06/15 17:49
- その他(プログラミング・Web制作) このプログラミングをどう組みますか? Googlecolabでやってるんですが、出来る方お願いします 1 2022/07/13 10:52
- Java java 次の機能を有するメソッドを自クラスに作成し、実装したいです。 機能 名前判定機能 →名前が 3 2022/06/16 16:08
- その他(プログラミング・Web制作) Pythonで複数のメソッドをまとめて管理する方法について 1 2023/03/30 00:01
- その他(プログラミング・Web制作) pythonのプログラムについての質問です。 1 2023/05/26 10:31
- Java javaの質問です 次の機能を有するメソッド4つを自クラスに作成し、実装したいです 【機能】 足し算 1 2022/06/15 15:14
- Visual Basic(VBA) セルS2に入力した「月」と一致したB列の右隣へセルS110の値を転記する下記マクロを実行するとエラー 2 2022/12/06 17:32
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CloseとDisposeの違い
-
C# 超初心者です。 this.Refres...
-
C#のインスタンスを参照渡ししたい
-
もしかして
-
「ご処理進めて頂きますようお...
-
エクセルで、日付を入力すると...
-
VBAでループ内で使う変数名を可...
-
エクセルVBAで、MsgBox やInput...
-
Do~Loopした回数をカウントしたい
-
switch の範囲指定
-
VBAでセルに値が入力されるまで...
-
メルカリのメルカードで買い物...
-
ImageMagickでgif画像の一部が...
-
【Excel】特定の文字を含むセル...
-
VBA エンターキーでイベントに...
-
リストボックスの選択解除
-
エクセルの画面にユーザーフォ...
-
VB.net(VB)で、フォームにExcel...
-
DoEventsがやはり分からない
-
アクセスVBAのMe!と[ ]
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CloseとDisposeの違い
-
C# 超初心者です。 this.Refres...
-
DLL内のイベントをハンドリング
-
C#のインスタンスを参照渡ししたい
-
コールバックでイベントを使う...
-
C#で引数を渡して、スレッド用...
-
フィールド(メンバ変数)のプリ...
-
Try~Catch、Finallyについて。
-
[C#]FormクラスのShowメソッド...
-
vb.net フォームアプリケーシ...
-
どういうプログラムで組みます...
-
OCXのメソッドの引数に文字列を...
-
objective-cにはCのような関数...
-
「ご処理進めて頂きますようお...
-
メルカリのメルカードで買い物...
-
エクセルで、日付を入力すると...
-
VBAでループ内で使う変数名を可...
-
Excelシート上のマクロを登録し...
-
エクセルVBAで、MsgBox やInput...
-
【Excel】特定の文字を含むセル...
おすすめ情報