問題タブ [winforms-interop]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
2347 参照

c# - Winforms から WPF コントロールにデータを渡すことはできますか?

私は winforms アプリを持っていますが、WPF をさらに実装するためのテイスターとして、WPF ユーザー コントロールをアプリに導入したいと考えています。

このコントロールは、ホストから 1 つの情報 (文字列) を受け取る必要があります。これを Winforms アプリからホストされたコントロールに渡すにはどうすればよいですか?

それとも、実際にできますか?

0 投票する
2 に答える
1412 参照

c# - アクティビティを WPF ListBox から WorkflowView にドラッグできません

ワークフロー デザイナーを WPF アプリケーションでホストしようとしています。WorkflowView コントロールは、WindowsFormsHost コントロールの下でホストされます。別の WindowsFormsHost でホストされている PropertyGrid に正常にリンクされているデザイナーにワークフローを読み込むことができました。

再ホスト コードの大部分はhttp://msdn.microsoft.com/en-us/library/aa480213.aspxと同じです。

ToolboxItems のリストにバインドされた ListBox WPF コントロールを使用して、カスタム ツールボックスを作成しました。

ListBox_PreviewMouseLeftButtonDown ハンドラーで:

そのセットアップでは、カスタム ツールボックスからデザイナーに項目をドラッグできません。カーソルは、デザイナーのどこでも常に「いいえ」と表示されます。

私は半日の間、ネット上でこれについて何かを見つけようとしてきました.

どんなフィードバックでも大歓迎です。ありがとうございました!

カルロス

0 投票する
1 に答える
640 参照

mfc - Vista 64 ビットの winforms ウィンドウでの MFC Active-X コントロール。「クラス未登録例外」

winforms ウィンドウでホストされている ActiveX コントロールでのキー処理に関する別の SO ポスターの提案を確認しようとして、最低限の MFC ActiveX コントロールを作成してから、それを Windows フォームに配置しようとしました。設計時には、コントロールは問題なく表示されました。

アプリケーションを実行すると、恐ろしい「クラスが登録されていない例外」が発生します。ダイアログが表示されます。

どちらのプロジェクトも VS 2008 です。Winforms アプリは .Net 3.5 フレームワーク アプリケーションです。

エクスプローラーからデバッガーを実行してみましたが (どちらの場合も昇格された特権)、何も機能していないようです。OCX を 64 ビットと 32 ビットの両方の regsvr32 実行可能ファイルに手動で登録したことも確認しました。

これが実行されないとは思っていなかったので、これは私を困惑させました。私は職場 (32 ビット Windows XP ボックス) で同様の実験を行いましたが、問題はありませんでした。

私のVS構成は次のとおりです。

  • マイクロソフト ビジュアル スタジオ 2008

  • バージョン 9.0.30729.1 SP

  • マイクロソフト .NET フレームワーク

  • バージョン 3.5 SP1

    最も紛らわしい点は、ActiveX コントロールが設計時に表示されるように見えることです。回答、提案、または考えをいただければ幸いです。

0 投票する
1 に答える
482 参照

winforms - ネイティブウィンドウでのWindowsフォームコントロールのホスティング、window class = "Static"

ネイティブアプリケーション(Visual Studio)にWindowsフォームコントロールを提供する必要があります。
そこで、コントロールを作成してそのハンドルを提供します。

次に、Spy ++を使用してネイティブウィンドウを確認すると、コントロールがウィンドウクラス="Static"およびタイトル"This is a static!"の追加の'control'にラップされていることがわかります。私はそれにいくつかの問題があります:

  1. ホスティングウィンドウによってコントロールに送信されたサイズ変更イベントは、サイズ変更されるように「静的」に再送信する必要があります(そうしないと、コントロールが静的サイズ内に部分的に非表示になります)。
  2. スタティックにはがないためWS_EX_CONTROLPARENTKB149501が表示されます(つまり、アプリケーション全体がフォーカスを失った状態でハングします)。
  3. 適用するWS_EX_CONTROLPARENTと、静的内のリストボックスは再描画を停止します。

私は何か間違ったことをしていると思いますが、何が起こっているのかわかりません。staticはC#キーワードでもあるため、Googleは役に立ちません。そのため、WinFormsの結果で頻繁に発生します。

0 投票する
1 に答える
625 参照

wpf - .NET 2.0 アセンブリから winforms または WPF でホットキーをフックする方法は?

.NET 2.0 を対象とするアセンブリを使用して、幅広いアプリケーションと互換性を持たせています。デスクトップ アプリケーション (winforms または WPF) で使用する場合、特定のホットキーをフックし、モードレス ダイアログ ウィンドウをポップアップしたいと考えています。難しいのは、WPF と互換性のある .NET 2.0 で実装できるソリューションを見つけることです。

Winforms の場合、 RegisterHotKeyを使用するか、IMessageFilter を実装してPreFilterMessageメソッドでWM_KEYDOWNをフックできますが、WPF ではうまく機能しません。

WPF の場合、InputBindingクラスは非常に優れていますが、これは .NET 2.0 では使用できません。

理想的なソリューションは次のとおりです。

  • .NET をターゲットとするアセンブリをビルドする

  • WPF または Winforms のキーストロークをフックする

  • システム全体ではなく、アプリケーション全体のスコープを提供する

0 投票する
1 に答える
360 参照

c# - wpf相互運用機能からwinformsデータにアクセスする方法は?

私のソリューションには2つのプロジェクトがあります。

WPF相互運用性のElementHostを使用して、WpfControlLibrary1のUserControl1をホストしています。

今、


「thismsgbox」にlabel1の内容を表示したい。

どうすればよいですか?

0 投票する
1 に答える
629 参照

c# - WPFが埋め込まれたWinformsコントロールからのWPFコマンドの呼び出し

WinDataGridInfragisticsから拡張されたクラスがありUltraGridます。WinDataGridを使用して、WPFユーザーコントロール内に自分を埋め込みましたWindowsFormHostDelegateCommand<IList>行が選択されたら、選択した行のコレクションで事前定義を呼び出す必要があります。

どうすればいいですか?

背景として、WPFDataGridとInfragisticsWinGridの両方を使用するWPFアプリがあります。WPFグリッドはすでにほとんど配線されているので、Winformsグリッドの配線には、既存のコマンドなどを可能な限り活用したいと思います。マッピングが必要な場合があることはわかっていますが、ほとんどのものをマッピングできるはずです。

0 投票する
3 に答える
11012 参照

c# - コンテナー/ラッパーを介して WPF フォーム内で WinForm フォームをホストすることは可能ですか?

WPFフォーム内のある種のコンテナまたはラッパータイプのコントロール内に(単一のコントロールだけでなく)完全なWinFormsフォームをホスト/表示する方法はありますか? 概念がphpまたはiframeのhtmlからの仮想インクルードに似たものを探しています。おそらく、OCX または DLL にコンパイルすることによって。

0 投票する
1 に答える
1069 参照

c# - C# ActiveX コントロールで親コントロール イベントを処理する

C# で ActiveX ユーザー コントロールを作成しました。その ActiveX コントロールは、Delphi で記述された IE で実行されるレガシー アプリケーション内でホストされます。すべてが機能します。私の唯一の問題は、私をホストしているコントロールのイベント (たとえば、サイズ変更イベント) をサブスクライブする必要があることです。

現在、私はそれを行うことができず、IE ウィンドウのサイズを変更すると、コントロールがSizeChangedイベントを取得しません。親コントロールのイベントをサブスクライブしようとしましたが、親コントロールが null としてリストされています。(Delphiの問題だと思います。)

これを機能させる方法があるかどうかを知りたいです (おそらく実装する必要があるいくつかのインターフェイス?)。

これが私のコントロールのコードの例です:

0 投票する
2 に答える
2786 参照

c# - タイトルバーボタンのツールチップテキストを上書きする(閉じる、最大化、最小化、ヘルプ)

フォームのメインタイトルバーのボタンに表示されるツールチップのテキストを変更しようとしてきました。

一言で言えば、Windowsフォームの[ヘルプ]ボタンを利用して、他の目的を持っています。これは正常に機能しています。問題は、そのボタンの上にマウスを置くと、「ヘルプ」ツールチップが表示されることです。これは、アプリケーションにとって意味がありません。

理想的には、アプリケーションのツールチップのテキストを変更する方法があります。ただし、この時点では、ツールチップを完全に無効にする方法を見つけるだけで満足できます。

regeditの「UserPreferencesMask」キーを変更することでOS全体のツールチップを無効にできることは知っていますが、これを自分のアプリケーションにのみ影響させる方法が本当に必要です。

繰り返しになりますが、理想的にはマネージコードでこれを行う方法がありますが、WindowsAPIなどにリンクすることに反対することはありません。

この問題を解決するための提案をありがとう!