問題タブ [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.
c# - C# 強制フォーム フォーカス
したがって、この質問をする前に、グーグルとSOを検索しました。基本的に、フォームがコンパイルされたDLLがあります。フォームは、画面に情報を表示するために使用されます。最終的には非同期になり、dll で多くのカスタマイズが公開されます。とりあえずちゃんと表示してほしい。私が抱えている問題は、Powershell セッションにロードして dll を使用することです。そのため、フォームを表示して一番上に来てフォーカスを取得しようとすると、他のすべてのアプリの上に表示しても問題ありませんが、Powershell ウィンドウの上に表示することはできません。 . これは、現在表示しようとしているコードです。私がそれを理解したら、その大部分は必要ないと確信しています。これは、Googleで見つけたすべてのものを表しています。
私が言っているように、そのほとんどは必要ないか、完全に間違っていると確信しています。私が試したことを示したかっただけです。また、前述したように、別のスレッドが必要になると思われる時点で、これを非同期で表示する予定です。フォームを独自のスレッドに分割すると、Powershell セッションにフォーカスしやすくなりますか?
@ジョエル、情報をありがとう。あなたの提案に基づいて私が試したことは次のとおりです。
フォームは引き続きPowershell セッションの下に表示されます。糸通しを進めていきます。以前にスレッドを生成したことはありますが、親スレッドが子スレッドと通信する必要がある場所でスレッドを生成したことはありません。
これまでのすべてのアイデアに感謝します。
わかりました、スレッド化で問題は解決しました。@Quarrelsome、私はそれらの両方を試しました。どちらも(または両方とも)機能しませんでした。スレッドを使用することの何が悪いのでしょうか? 私は Application.Run を使用していませんが、まだ問題はありません。親スレッドと子スレッドの両方がアクセスできるメディエーター クラスを使用しています。そのオブジェクトでは、ReaderWriterLock を使用して、子スレッドが作成するフォームに表示するメッセージを表す 1 つのプロパティをロックしています。親はプロパティをロックしてから、表示すべきものを書き込みます。子スレッドはプロパティをロックし、フォームのラベルを何に変更するかを読み取ります。子はポーリング間隔 (デフォルトでは 500 ミリ秒) でこれを行う必要がありますが、これについてはあまり満足していませんが、プロパティが変更されたことを子スレッドに知らせるイベント ドリブンの方法を見つけることができませんでした。
c# - C# winforms エディット コントロールのヒントを表示する
私は C# winforms アプリケーション (VS.NET 2008、.NET 3.5 sp 1) に取り組んでいます。フォームに検索フィールドがあり、検索フィールドの横にラベルを表示するのではなく、検索フィールド自体の背景に灰色のテキストを表示したいと考えています (「検索用語」など)。ユーザーが検索フィールドにテキストを入力し始めると、テキストが消えるはずです。どうすればこれを達成できますか?
c# - C#WinFormsアプリをトレイするために最小化する適切な方法は何ですか?
WinFormsアプリをシステムトレイに最小化する適切な方法は何ですか?
注:システムトレイに最小化します。時計のそばのタスクバーの右側にあります。タスクバーを最小化することについては質問していません。これは、ウィンドウの「マイナス」ボタンを押したときに発生します。
「最小化して、ShowInTaskbar = falseに設定してから、NotifyIconを表示する」などのハックなソリューションを見てきました。
このようなソリューションは、アプリが他のアプリのようにトレイに最小化されていないように見えるため、ハックです。コードは、他の問題の中でも特に、ShowInTaskbar=trueを設定するタイミングを検出する必要があります。
これを行うための適切な方法は何ですか?
winforms - ListView内のListViewItemの数が変更された場合にトリガーされるイベントはありますか?(Windowsフォーム)
コントロール内のアイテムの数に基づいて、他のいくつかのコントロールを有効/無効にしたいのですがListView
。ListView
それ自体またはで、これを行うイベントが見つかりませんListViewItemCollection
。たぶん、変更がないかC#のコレクションを一般的に監視する方法はありますか?
他のイベントにも満足しています。アイテムが変更されないときに発生することもありますが、たとえば、ControlAdded
andLayout
イベントは機能しませんでした:(。
.net - Windows フォーム プログラムを実行するユーザーを変更する
C# で簡単な Windows フォーム プログラムを作成しました。Windowsのユーザー名とパスワードを入力できるようにしたいのですが、ログインボタンをクリックすると、入力したユーザーとしてコードが実行されます。
c# - Winforms c# - TabPage の最初の子コントロールにフォーカスを設定する
内に がTextbox
ネストされているとしTabControl
ます。
フォームが読み込まれたら、それにフォーカスしたいと思いTextbox
ます (デフォルトでは、フォーカスは に設定されていますTabControl
)。
textbox1.focus()
フォームのイベントで呼び出すだけでLoad
は機能しないようです。
私は次のことを行うことでそれを集中させることができました:
私の質問は:
これを行うよりエレガントな方法はありますか?
c# - C#のマルチスレッドスプラッシュ画面?
アプリケーションの読み込み中にスプラッシュ画面を表示したい。システムトレイコントロールが関連付けられたフォームがあります。このフォームの読み込み中にスプラッシュ画面を表示したいのですが、WebサービスAPIにアクセスしてドロップダウンを入力するため、少し時間がかかります。また、ロードする前に依存関係の基本的なテストを行いたいと思います(つまり、Webサービスが利用可能であり、構成ファイルが読み取り可能です)。起動の各フェーズが進むにつれて、進行状況に応じてスプラッシュ画面を更新したいと思います。
私はスレッドについてたくさん読んでいますが、これをどこから制御すべきか(main()
方法は?)に迷っています。また、どのようにApplication.Run()
機能するのかがわかりません。これは、このためのスレッドを作成する必要がある場所ですか?さて、システムトレイコントロールを備えたフォームが「生きている」フォームである場合、スプラッシュはそこから来る必要がありますか?とにかくフォームが完成するまでロードされませんか?
私はコードの配布物を探しているのではなく、アルゴリズム/アプローチの詳細を探しているので、これを一度だけ理解することができます:)
c# - C# での既定のアプリケーション設定の読み取り
カスタム グリッド コントロール用に (ユーザー スコープで) 多数のアプリケーション設定があります。それらのほとんどは色の設定です。ユーザーがこれらの色をカスタマイズできるフォームがあり、デフォルトの色設定に戻すためのボタンを追加したいと考えています。デフォルト設定の読み方を教えてください。
例えば:
CellBackgroundColor
という名前のユーザー設定がありますProperties.Settings
。- 設計時に、IDE
CellBackgroundColor
を使用して の値を設定しました。Color.White
- ユーザーは私のプログラムでに設定
CellBackgroundColor
します。Color.Black
- で設定を保存します
Properties.Settings.Default.Save()
。 - ユーザーが
Restore Default Colors
ボタンをクリックします。
さて、Properties.Settings.Default.CellBackgroundColor
戻りますColor.Black
。に戻るにはどうすればよいColor.White
ですか?
visual-studio - 「ビジュアル継承」のプレイ状況は?
メインフォームをユーザーに表示する方法を柔軟にする必要があるアプリケーションがあります。ユーザーによっては、フォームがわずかに異なる必要があり、追加のボタンがあちこちにあったり、その他のニュアンスがあったりします。コントロールなどを明示的に削除または追加するコードを書くのをやめるために、問題を解決するために視覚的な継承に目を向けました.正当な理由もなく VS でテーマ自体をレンダリングするなど - 開発者と Microsoft がある程度 Visual Inheritance の実践を避けているように感じます - これを確認できますか?
よろしく。
winforms - winform の HTML レイアウト
ピクセルの位置を指定して winform フォームにコントロールを配置する代わりに、html でフォームをレイアウトするのと同じようにレイアウトしたいと思います。これにより、スケーリングが向上します(大きなフォントなどの場合)。
xml でフォームを定義し、html のようにレイアウトできるレイアウト ライブラリを知っている人はいますか?