問題タブ [winforms]

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 投票する
6 に答える
32841 参照

c# - イベント コールバックを Win フォーム スレッド セーフにするにはどうすればよいですか?

フォーム内からオブジェクトのイベントをサブスクライブすると、基本的にコールバック メソッドの制御がイベント ソースに渡されます。そのイベント ソースが別のスレッドでイベントをトリガーすることを選択するかどうかはわかりません。

問題は、コールバックが呼び出されたときに、フォーム上でコントロールを更新できると想定できないことです。これは、フォームが実行されたスレッドとは異なるスレッドでイベント コールバックが呼び出された場合、これらのコントロールが例外をスローすることがあるためです。

0 投票する
4 に答える
8997 参照

winforms - データグリッド行をプログラムで反復する方法は?

何年にもわたる Web 開発の後、突然 WinForms に戻ってきましたが、単純であるべき何かで問題が発生しています。ArrayListWindows Forms にバインドされたビジネス オブジェクトがありますDataGrid。ユーザーがセルを編集できるようにしたいと思います。終了したら、[保存] ボタンを押します。DataGridその時点で、すべての行と列を反復処理して変更を見つけ、データベースに保存したいと思い ます。DataGridしかし、行 にアクセスする方法が見つかりません。

また、個々のセルが編集されているので、リアルタイムで検証したいと思いますが、それができると確信しています。(おそらく anArrayListを as として使用しないDataSourceでしょうか?) しかし、 を反復することに関してはDataGrid、それが不可能に見えることに非常に驚いています。

データグリッドを使用するには、ビジネス オブジェクトのデータをデータ テーブルに実際に詰め込む必要がありますか?

0 投票する
17 に答える
175365 参照

c# - Windowsフォームで別のフォームのコントロールにアクセスする最良の方法は?

まず、これはASP.NETの質問ではなく、Windows フォームを使用するデスクトップ アプリケーションに関する質問です。

他のフォームのコントロールを操作する必要があります。たとえば、次のようにしてコントロールにアクセスしようとしています...

それは私が期待するようには機能しません。から例外がスローされてしまいMainます。ただし、public代わりにコントロールを作成するとprivate、それらに直接アクセスできるようになります...

しかし、それはそれを行うための最良の方法ですか?他のフォームでコントロールpublicを作成することは「ベスト プラクティス」と見なされますか? 別のフォームのコントロールにアクセスする「より良い」方法はありますか?

さらなる説明:

これは実際には、私が行った別の質問「C# で「ツリー ビュー設定ダイアログ」タイプのインターフェイスを作成するための最良の方法は? . 私が得た答えは素晴らしく、実行時と設計時の両方で UI をまっすぐに保ち、使いやすくするという点で私が抱えていた多くの組織的な問題を解決しました。ただし、インターフェイスの他の側面を簡単に制御するという、この 1 つの厄介な問題が発生しました。

基本的に、ルートフォームのパネルにある他の多くのフォームをインスタンス化するルートフォームがあります。したがって、たとえば、これらのサブフォームの 1 つのラジオ ボタンは、メインのルート フォームのステータス ストリップ アイコンの状態を変更する必要がある場合があります。その場合、親 (ルート) フォームのステータス ストリップにあるコントロールと対話するサブフォームが必要です。(「誰が最初に」のような方法ではなく、それが理にかなっていることを願っています。)

0 投票する
5 に答える
42336 参照

c# - Windows フォーム アプリケーションの HTML エディター

Windows アプリケーション (vb.net または c#) 用の WYSIWYG エディター コントロールを探しています。これにより、ユーザーは送信前に HTML メールを設計できます (ドット ネット フレームワークの SMTP オブジェクトを使用して送信できます)。

現在、私たちが見つけることができるすべての利用可能なエディターには、次のいずれかの問題があります。

  1. それらは mshtml.dll または Web ブラウザ コントロールに依存していますが、Windows 2000 (IE6) では HTML コードとエディタが同期しなくなるため、信頼性が低いことが証明されています。

  2. これらは Web ベースであり、Windows フォーム コントロールではありません

  3. ドキュメントのヘッドにスタイルを配置します (以下の注を参照)。

残念ながら、このHTML 電子メールの記事で説明しているように、スタイルを使用して HTML 電子メールを作成する唯一確実な方法は、スタイルをインラインで使用することですが、これは現在多くのエディターでサポートされていないようです.

誰かがこれについて経験を持っているか、解決策を提案できますか?

0 投票する
11 に答える
30696 参照

c# - Windows フォーム デザイナでフォームをロードすると、「タイプが見つかりませんでした」というエラーが表示される

コントロールを多用する .NET 2.0 Windows フォーム アプリがありますListView

ListViewこのクラスをテンプレート化されたクラスにサブクラス化したSortableListView<T>ので、オブジェクトの表示方法と並べ替え方法が少し賢くなります。

残念ながら、これは VS2005 と 2008 の両方で Visual Studio Forms Designer を壊すようです。

プログラムはコンパイルして正常に実行されますが、デザイナーで所有フォームを表示しようとすると、次のエラーが発生します。

  • タイプ 'MyApp.Controls.SortableListView' が見つかりませんでした。この型を含むアセンブリが参照されていることを確認してください。このタイプが開発プロジェクトの一部である場合は、プロジェクトが正常にビルドされていることを確認してください。

このエラーで利用できるスタック トレースまたはエラー行情報はありません

  • 変数「listViewImages」が宣言されていないか、割り当てられていません。

MyApp.Main.Designer.cs 行:XYZ 列:1

問題のコード行は、実際にフォームに追加される場所であり、

listViewImages は次のように宣言されています

次のようにメソッドでインスタンス化さInitializeComponentれます。

前述のように、プログラムは完全にコンパイルおよび実行されます。SortableListViewクラスを個別のアセンブリにシフトして、個別にコンパイルできるようにしましたが、違いはありません。

ここからどこへ行けばいいのかわからない。どんな助けでも大歓迎です!

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

c# - コンパクト フレームワーク/スレッド化 - オプションを選択すると、MessageBox が他のコントロールの上に表示されます

外部サーバーから一連の更新を取得してインストールするアプリに取り組んでおり、スレッド化の助けが必要です。ユーザーは次のプロセスに従います。

  • ボタンのクリック
  • メソッドは更新をチェックし、count が返されます。
  • 0 より大きい場合は、MessageBox.Show() を使用してインストールするかどうかをユーザーに尋ねます。
  • はいの場合、ループを実行し、各更新の run() メソッドで BeginInvoke() を呼び出して、バックグラウンドで実行します。
  • 私の更新クラスには、進行状況バーなどを更新するために使用されるいくつかのイベントがあります。

進行状況バーの更新は問題ありませんが、ユーザーが [はい] をクリックした直後に更新ループが開始されるため、MessageBox は画面から完全に消去されません (下のスクリーンショットを参照)。

  • 更新ループが始まる前にメッセージボックスを即座に非表示にするにはどうすればよいですか?
  • BeginInvoke() の代わりに Threads を使用する必要がありますか?
  • 別のスレッドで最初の更新チェックを行い、そのスレッドから MessageBox.Show() を呼び出す必要がありますか?

コード

スクリーンショット

Windows モバイルのバグ

0 投票する
7 に答える
7869 参照

winforms - WinForms では、他のスレッドから UI コントロールを更新できないのはなぜですか?

これには正当な(または少なくともまともな)理由があると確信しています。それは何ですか?

0 投票する
5 に答える
14713 参照

c# - アプリでのみ WebBrowser の「クリック音」を無効にする方法

問題の「クリック音」は実際にはシステム全体の設定であるため、アプリケーションにフォーカスがあるときにのみ無効にし、アプリケーションが閉じたりフォーカスを失ったりしたときに再度有効にしたい.

もともと、私はここでこの質問をしたかったのですが、まだベータ版ではありませんでした。それで、答えをグーグルで調べて、それに関する情報を少しだけ見つけた後、私は次のことを思いつき、ベータ版になったのでここに投稿することにしました。

次に、メイン フォームで、次の 3 つのイベントで上記のコードを使用します。

  • アクティブ化
  • 非活動化
  • フォームクロージング

    /li>

私が現在見ている 1 つの問題は、プログラムがクラッシュした場合、アプリケーションを再起動するまでクリック音が聞こえないことですが、彼らはそれを行うことを知りません。

皆さんはどう思いますか?これは良い解決策ですか?どのような改善を行うことができますか?

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

c# - AzManを呼び出すと、「パスワードを更新できません」というエラーが表示されるのはなぜですか?

Enterprise LibraryのAzMan認証プロバイダーを使用してWinFormsアプリケーションから認証チェックを実行していますが、次のエラーが発生します。

パスワードを更新できません。現在のパスワードとして提供された値が正しくありません。(HRESULTからの例外:0x8007052B)(Microsoft.Practices.EnterpriseLibrary.Security.AzMan)


パスワードを更新できません。現在のパスワードとして提供された値が正しくありません。(HRESULTからの例外:0x8007052B)(Microsoft.Interop.Security.AzRoles)

AzManストアは、同じドメイン内の別のコンピューター上のADAMでホストされています。他のコンピューターやユーザーにはこの問題はありません。電話をかけるユーザーは、ADAMストアとAzManストアの両方への読み取りアクセス権を持っています。WinFormsアプリを実行しているコンピューターとADAMを実行しているコンピューターは、どちらもWindowsXPSP2上にあります。

解決する前にAzManでアクセスの問題が発生しましたが、これは新しいものです...何が欠けていますか?

0 投票する
6 に答える
4111 参照

c# - 大規模な UI アプリケーションの将来の保証 - 2008 フィーチャー パックを使用した MFC、または C# と Winforms?

私の会社は、Visual C++ の MFC を UI 開発のデファクト スタンダードとして使用する長年の製品を開発しました。私たちのコードベースには、運用を維持する必要があるレガシー/古風なコードが大量に含まれています。このコードの一部は私よりも古く (最初に書かれたのは 70 年代後半)、チームの一部のメンバーはまだ Visual Studio 6 を使用しています。

しかし、ありがたいことに、当社の製品は競合他社の製品と比較してやや時代遅れに見え、何かを行う必要があるという結論に達しました.

私は現在、製品の残りの部分とはまったく別の UI の新しい領域に取り組んでいます。そのため、UI の残りの部分を移動する長いプロセスが始まる前に、一種の証明の場として「新しい」テクノロジ スタックを試す機会が与えられました。

私は暇な時間に Windows Forms と .net フレームワークで C# を使用して楽しんでいますが、相互運用性によって引き起こされる頭痛が少し心配です。UI のこの特定のブランチは、従来の C++ コードベースとの相互運用性をあまり必要としませんが、将来的にはこれが問題になると予測できます。

別の方法は、MFC をそのまま使用することですが、VS2008 に同梱されている新しい機能パックを利用してみてください。これが最も簡単なオプションだと思いますが、寿命が長く、.net の利点を活用できないことを心配しています...

それで、私はどれを選びますか?私たちは小さなチームなので、私の提案は将来の開発の方向性として受け入れられる可能性が非常に高いです - 私はそれを正しくしたい.

MFCは死んでいますか?C#/Winforms は進むべき道ですか? 私が完全に見逃しているものは他にありますか?大変助かります!