C# 別プロジェクトのフォームを参照する方法
- C#で別のプロジェクトのフォームを参照する方法について説明します。
- 同じソリューション内の別のプロジェクトからフォームクラスを参照する方法について解説します。
- 具体的な例として、AプロジェクトからBプロジェクトのフォームクラスを参照する方法について詳しく説明します。
- ベストアンサー
C# 別プロジェクトのフォームを参照する方法
同じソリューションに複数のプロジェクトが存在しています。 その中のあるプロジェクト[Aプロジェクト]から別のプロジェクト[Bプロジェクト]に存在する フォームクラスを参照したいのですが、参照できません。 Bプロジェクト内に存在するクラスは参照できるのですが、フォームだけが参照できない状態です。 Bプロジェクトのフォームは、次のように宣言されています。 public partial class frmEdit : Form { ・・・・・・・・・ } もう1つのpartialクラスはfrmEdit.Designnerクラスに存在します。 どうすれば、参照できるようになるでしょうか? ご存知の方、ご教授お願い致します。
- yamachan_tomo
- お礼率58% (67/114)
- その他(プログラミング・開発)
- 回答数1
- ありがとう数1
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
直接フォームを参照するのではなく、公開用のクラスを作成して、それ経由でアクセスするのが無難なような気がします。
関連するQ&A
- 同じソリューションの別プロジェクトの参照方法は?
VS2005ProのVB2005を使用しています。 Aというソリューションに BプロジェクトとCプロジェクトがあります。 Bプロジェクトの参照設定にD.DLLを追加しました。 Bプロジェクトに追加されたD.DLLを使用しようと思い Cプロジェクトの参照設定にBプロジェクトを追加したのですが D.DLLがCプロジェクトからは使用できません。 どのように設定を行えばCプロジェクトから Bプロジェクトに追加されたD.DLLが 使用可能になるのでしょうか? よろしくおねがいします。
- 締切済み
- Visual Basic
- 同じソリューション内の別のプロジェクトのメソッド呼び出し
同じソリューション内の別のプロジェクトのメソッド呼び出し お世話になっております。 Visual Studio でC#で開発をしております。 初心者です。 同じソリューション内にある別のプロジェクトのメソッドを呼び出す方法は どの様にしたら宜しいのでしょうか。 下記の様に記述しましたら、 「静的でないフィールド、メソッド、またはプロパティ ~省略~ で、 オブジェクト参照が必要です」と言うエラーが出てしまいます。 何か根本的に間違っているのかも知れません。 何卒、ご教授頂きたく宜しくお願い致します。 記 呼び出し側 private void button1_Click(object sender, EventArgs e) { 呼び出し先のプロジェクト名.クラス名.メソッド名(); } 呼び出される側 namespace プロジェクト名 { public class クラス名 { メソッド名() { 処理内容 } } }
- ベストアンサー
- C・C++・C#
- 別のフォームで記述している関数を実行するには?C#
お世話になります。ド素人な質問ですみません。 C#なのですが例えばForm1で記述した関数(関数って呼ぶのかわかりませんが)をForm2で実行するにはどのようにしたらよいのでしょうか? ネットで検索してみてもなかなかヒットしないのでこちらでお聞きします。 public partial class Form1 : Form { public Form_OzzCalc() { InitializeComponent(); } private void hoge() { ~ } } このhoge()という関数を別のフォーム(例えばForm2)で呼び出して使うにはどのようにしたらよいのでしょうか? privateをpublicに変更してもForm2ではこの関数を記述すると「'hoge'は現在のコンテキスト内に存在しません」と出ます。 何か参考になるサイトでも構いません。よろしくお願いいたします。
- ベストアンサー
- C・C++・C#
- 特定のフォームだけ別フォームからの参照がされません
VB 2005,Framework2.0を使用しています。 現在、サブフォームからダイアログフォームを表示し、ダイアログフォーム内の入力値等をサブフォームに渡す処理を行っています。 サブフォームは複数作成しており、特定のサブフォームだけダイアログフォームの入力値がサブフォームに渡されず原因が分からなくて困っています。 コードは以下のような形で書いています。 'サブフォーム Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim f As New Dialog1 f.StartPosition = FormStartPosition.CenterParent f.ShowDialog() End Sub End Class 'ダイアログフォーム Public Class Dialog1 Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click Form1.Label1.Text = Textbox1.text Me.Close() End Sub End Class 2005では、別フォームからの参照はVB6と同じようにインスタンスを作成しなくても参照できる様になったと聞いていますので、上記のコードでも参照方法として問題はないと思うのですが、うまく動作しない原因が分かる方が居られましたら宜しくお願いします。
- ベストアンサー
- Visual Basic
- c#で次の次のフォームへのデータの渡し方
c#で次の次のフォームへのデータの渡し方 お世話になります。 c#初心者です。 フォーム1にはbuttonが2つあり、どちらを押したかで 次(フォーム2)の次のフォーム(フォーム3)を開く時に そのフォームにあるボタンを表示させるか・非表示にさせるか したいと思っております。 中途半端ですが下記の様なコードを書いておりましてその先 フォーム3での記述をどの様に書いたら良いのか行き詰って しまいました。 どなたかご親切な方、ご教示頂きたく宜しくお願い申し上げます。 記 クラス using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace WindowsFormsApplication1 { public class Keikaku { public enum Mode { Syuuse, Syoukai } } } ---------------------------------- フォーム1 namespace WindowsFormsApplication1 { public partial class MainMenu : Form { private void button1_Click(object sender, EventArgs e) { Form2 cForm2 = new Form2(); cForm2.Syuusei = Keikaku.Mode.Syuusei; cForm2.ShowDialog(); } private void button2_Click(object sender, EventArgs e) { Form2 cForm2 = new Form2(); cForm2.Syuusei = Keikaku.Mode.Syoukai; cForm2.ShowDialog(); } } } ---------------------------------- フォーム2 namespace WindowsFormsApplication1 { public partial class Form2 : Form { public Form2() { InitializeComponent(); } private Keikaku.Mode _kakunin; public Keikaku.Mode Syuusei { set { _kakunin = value; } } private void button1_Click_1(object sender, EventArgs e) { Form3 cForm3 = new Form3(); cForm3.ShowDialog(); } } } ---------------------------------- フォーム3 namespace WindowsFormsApplication1 { public partial class Form3 : Form { } }
- ベストアンサー
- C・C++・C#
- ★Eclipse で、プロジェクトから別のプロジェクトを参照する方法
現在、Javaでプログラムを作成しているのですが、2つのプロジェクトを作り、BからAプロジェクトを利用している形にしてます。 Eclipse上で、BプロジェクトのJava Build Path のProjectsタブに、Aプロジェクトを指定しているのですが、 どうもAプロジェクト内のクラスが認識されず、リンクエラーになります。 Aプロジェクトをビルドしてjarを作成し、このjarをLibrariesタブに追加すると、問題なく参照解決されます。 このような症状をご存知の方、いませんでしょうか?
- ベストアンサー
- Java
- C#とC++の共通フラグの設定・参照法は?
.NET C# でプログラムを作ってあります C#にはフォームが3ケあり共通のフラッグを設定・参照し合っています フラッグは数値であり、共通領域に次のように確保しています class ComData { static int Common_Flag = 0; } 設定は ComData.Common_Flag = 1; 参照は if (ComData.Common_Flag == 0) { ・・・・・ } else { ・・・・・ } などと極く平凡にしております 今回必要があり同じソリューションの中に、従来のC#プロジェクトとは別にC++プロジェクト(DLL)を作り同じCommon_Flagを参照しなくてはならなくなりました C++からC#のCommon_Flagを参照するには何の様にすれば宜しいのでしょうか? 色々調べましたが分かりません 適当なサンプルなどが御座いましたらご指導お願い申し上げます
- ベストアンサー
- C・C++・C#
- Webアプリで異なるプロジェクトの参照
Eclipse上で異なる動的WebプロジェクトをA と B を作成しているのですが AのプロジェクトからBのプロジェクトのクラスを参照させたいと思っています。 そこでAプロジェクト上で右クリック→プロパティ にて Deployment Assembly を選択し、 追加でBプロジェクトを選択しました。これにより Aプロジェクトのソースで Bプロジェクトのクラスをコールしている部分のコンパイルが通りました。 しかし、この状態でサーバーを起動し、テストしてみるとBプロジェクトのクラスをコールしているところ でClass Not Found Exception が発生してしまいます。 まだ何か設定をする必要があるのでしょうか。 Aプロジェクト上で右クリックで Javaのビルドパス の設定画面でBプロジェクトにパスを 通しても同様のエラーが発生いたしました。 どなたか対応策はお分かりになりますでしょうか。 ちなみに、Bプロジェクトをjarにして出力してAプロジェクトのlibにインポートした場合はうまくいきました。
- ベストアンサー
- Java
- C# フォームのShow()をオーバーライド
ご質問があります。 フォームが二つ(フォームA、フォームB)あり、フォームAからフォームBを開く時に、フォームBにコードを渡す必要があり、フォームBのShow()をオーバーライドさせて(Show()に引数を設定し、引数でコードを渡し、フォームBの変数にコードをセットして使用する)、コードを使用します。 このShow()のオーバーライドのさせ方なのですが、以下ではエラーが出てしまいました。 public partial class FormB : Form { private string hacyucode; public FormB() { InitializeComponent(); } override void Show(string code) { hacyucode = code; } } ※「オーバーライドする適切なメソッドが見つかりませんでした。」というエラーが出てしまいます。 Show()の適切なオーバーライドの方法をご教授していただけませんでしょうか。 よろしくお願い致します。
- 締切済み
- C・C++・C#
- C# フォームのShow()のオーバーライド
ご質問があります。 フォームが二つ(フォームA、フォームB)あり、フォームAからフォームBを開く時に、フォームBにコードを渡す必要があり、フォームBのShow()をオーバーライドさせて(Show()に引数を設定し、引数でコードを渡し、フォームBの変数にコードをセットして使用する)、コードを使用します。 このShow()のオーバーライドのさせ方なのですが、以下ではエラーが出てしまいました。 public partial class FormB : Form { private string hacyucode; public FormB() { InitializeComponent(); } override void Show(string code) { hacyucode = code; } } ※「オーバーライドする適切なメソッドが見つかりませんでした。」というエラーが出てしまいます。 Show()の適切なオーバーライドの方法をご教授していただけませんでしょうか。 よろしくお願い致します。
- 締切済み
- その他(プログラミング・開発)
お礼
ご回答有難う御座います。