質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

WPF

Windows Presentation Foundation (WPF) は、魅力的な外観のユーザー エクスペリエンスを持つ Windows クライアント アプリケーションを作成するための次世代プレゼンテーション システムです

Q&A

解決済

3回答

3620閲覧

VBとC#のプロジェクト混在時の設定方法

wheeliechamp

総合スコア11

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

WPF

Windows Presentation Foundation (WPF) は、魅力的な外観のユーザー エクスペリエンスを持つ Windows クライアント アプリケーションを作成するための次世代プレゼンテーション システムです

0グッド

0クリップ

投稿2020/08/13 12:49

VisualStudioのソリューション内にVB.netのフォームアプリケーションのプロジェクトがあります。
ここにC#のWPFアプリケーションのプロジェクトを追加作成しました。

この場合、
1.VBフォームからWPFを呼び出すにはどのようにすれば良いでしょうか?
2.また、WPFウィンドウをスタートアップ表示するにはどのような設定をすれば良いでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TN8001

2020/08/14 06:22

解決されましたらどれかをベストアンサーにして、解決済みにしてください。
guest

回答3

0

自己解決

回答ありがとうございます。参考になりました。

実現できました。

  1. VB側のプロジェクトで、C#プロジェクトを参照設定します。
  2. C#側で作成した WPF (MainWindow)の呼び出しは、
Dim csprj As CSharpProject.MainWindow csprj = New CSharpProject.MainWindow csprj.Show()

とすることで、表示できました。
このとき困ったのが、C#側のapp.configに記述した設定情報を読めないこと。
これは

  1. C#側で記載していた内容をVB側のapp.confに転記。
  2. C#側のapp.confを削除。
  3. C#側で既存項目の追加でVB側のapp.comfを追加(このときリンクで追加にする)

で解決できました。

WPF側をスタートアップにするのは、ソリューションの設定でWPFをスタートアッププロジェクトに設定することで実現できそうです。

投稿2020/08/14 03:57

wheeliechamp

総合スコア11

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

やったことないので外している可能性が高いです^^;

VBFormAppCSWpfAppプロジェクトがあるとします。

1.VBフォームからWPFを呼び出すにはどのようにすれば良いでしょうか?

Process.Start("CSWpfApp.exe")
そういうことじゃないですね?^^;

vb

1Public Class Form1 2 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 3 Dim window As New CSWpfApp.MainWindow 4 ElementHost.EnableModelessKeyboardInterop(window) 5 window.Show() 6 End Sub 7End Class

こういうことでしょうか??

CSWpfAppプロジェクトを参照に追加したうえで、
PresentationCorePresentationFrameworkWindowsBaseWindowsFormsIntegration
も参照に追加が必要です。

2.また、WPFウィンドウをスタートアップ表示するにはどのような設定をすれば良いでしょうか?

CSWpfAppを起動するようにして、↑の逆をやればいいんじゃないでしょうか。

投稿2020/08/13 21:32

編集2023/07/22 10:27
TN8001

総合スコア9385

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

回答ありがとうございます。参考になりました。

実現できました。

  1. VB側のプロジェクトで、C#プロジェクトを参照設定します。
  2. C#側で作成した

WPF (MainWindow)の呼び出しは、

Dim csprj As CSharpProject.MainWindow csprj = New CSharpProject.MainWindow csprj.Show()

とすることで、表示できました。
このとき困ったのが、C#側のapp.configに記述した設定情報を読めないこと。
これは

  1. C#側で記載していた内容をVB側のapp.confに転記。
  2. C#側のapp.confを削除。
  3. C#側で既存項目の追加でVB側のapp.comfを追加(このときリンクで追加にする)

で解決できました。

WPF側をスタートアップにするのは、ソリューションの設定でWPFをスタートアッププロジェクトに設定することで実現できそうです。

投稿2020/08/14 03:52

wheeliechamp

総合スコア11

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問