問題タブ [openfiledialog]
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.
.net - フォルダを選択するようにOpenFileDialogをどのように構成しますか?
VS .NETでは、プロジェクトのフォルダーを選択すると、OpenFileDialogまたはSaveFileDialogのようなダイアログが表示されますが、フォルダーのみを受け入れるように設定されています。これを見て以来、私はそれがどのように行われるのか知りたいと思っていました。私はFolderBrowserDialogを知っていますが、そのダイアログが本当に好きだったことはありません。最初は小さすぎて、パスを入力できることを利用できません。
.NETからこれを行う方法は今のところほぼ確実ですが、アンマネージコードからも同様にこれを行う方法に興味があります。ダイアログを最初から完全に再実装する以外に、この動作をするようにダイアログをどのように変更しますか?
また、FolderBrowserDialogを認識していることを言い直したいのですが、この方法でダイアログを構成する方法に本当に興味があることに加えて、それを使用したくない場合もあります。FolderBrowserDialogを使用するように指示すると、一貫したUIエクスペリエンスを維持できますが、好奇心を満たせないため、回答としてカウントされません。
これもVista固有のものではありません。このダイアログはVS.NET2003から表示されているので、Win2kとWinXPで実行できます。これは、「これを行うための適切な方法を知りたい」という質問ではなく、「VS 2003で最初にやりたかったので、これについて興味がありました」という質問です。Vistaのファイルダイアログにこれを行うオプションがあることは理解していますが、XPで機能しているので、Vistaを機能させるために何かをしたことがわかります。Vistaは質問のコンテキストに存在しないため、Vista固有の回答は回答ではありません。
更新:Scott Wisniewskiの回答は動作するサンプルが付属しているので受け入れていますが、Sergeはダイアログのカスタマイズ(.NETからは明らかに厄介ですが、動作します)とMarkRansomがそのMSを理解したことを指摘したことは称賛に値すると思いますおそらく、このタスクのカスタムダイアログをロールバックしました。
c# - OpenFileDialog。「ディレクトリ指定ダイアログ」はどうですか?
ファイルパスフィールドで、次のようにディレクトリパスをキャプチャします。
誰?
delphi - Delphi:OpenFileDialogがURLでクラッシュする
TOpenFileDialogへのURLを指定すると、Executeメソッドは例外をスローします。
ただし、URLからファイルを開くことは許可されています。
Delphi 5
.net - ウィンドウへのコントロールの変更/追加 共通ダイアログを開く/保存する
ウィンドウの開く/保存共通ダイアログを変更/追加して、機能を追加する方法はありますか?
職場では、サーバー上に何百もの「ジョブ フォルダー」がある領域があります。ジョブに関する情報 (電子メール、スキャンしたファックス、Word ドキュメント、スプレッドシート、写真など) を格納するために、データベース アプリケーションによって自動的に作成/管理される通常の Windows フォルダーです。ジョブ番号によって名前が付けられます。
データベースからのタグに基づいてジョブフォルダーを検索するコンボボックスを使用して、標準の開く/保存ダイアログを拡張したいと考えています。これにより、ユーザーが何をしていても、正しいジョブフォルダーへの道を簡単に見つけて作業を検索/保存できるようになります。
データベースに接続して検索機能を提供することは問題ありませんが、ダイアログにコンボボックス コントロール (理想的にはキープレス/キーダウン イベントを使用) を追加する方法はありますか?
または、独自のダイアログを作成し、標準のダイアログの代わりに呼び出し/使用しますか? つまり、どのアプリからでもダイアログが呼び出され、ジョブフォルダーに簡単にアクセスできます。Outlook を使用している場合は、ジョブ フォルダーをすばやく見つけることができます。メモ帳を使用している場合は、フォルダーを簡単に見つけることができます。
これは、任意のアプリからジョブ フォルダーを見つけるための新しい統一された方法を意味します。
誰かが VB/VB.net/C# を使用する方法を知っているのが理想ですが、可能であれば、おそらく C++ になると思います。
windows - 設定を保持したままダイアログを開く
[開く] ダイアログ ボックスの設定を保存するにはどうすればよいですか? たとえば、[詳細] ビューを選択し、変更日で並べ替えたことを [ダイアログを開く] に記憶させます。
winapi - GetOpenFileName ファイル選択ダイアログのファイル名フィールドの文字数を増やす
私たちのアプリでは、GetOpenFileName 関数を介して表示されるファイル選択ダイアログで複数のファイルを選択できます (この質問は、CFileDialog などを使用しているユーザーにも当てはまります...)
ファイル名フィールドに入力できる文字数には制限があるようです (259 がマジック ナンバーのようです - 理由は不明です)。
OPENFILENAME構造体の次のメンバーを変更しようとしました:
lpstrFile - 4K バイトのサイズの独自のバッファを指します nMaxFile - lpstrFile のサイズに設定します (ANSI をコンパイルしているので、これは事実上 4000
ただし、これらの値は、ダイアログのファイル名フィールドの入力幅を増加させないように見えます。
コントロールに EM_SETLIMITTEXT メッセージを送信して実験するつもりですが、他の誰かが解決策を持っているかどうか知りたいです。
編集-これを自分で解決しました:解決策 私は自分の答えを受け入れることはできませんが、ここでは後世のためです。他の誰かがより良い解決策を持っている場合は、投稿してください。または、将来の検索者が一番上に表示されるように、私の解決策を自由に変更してください。
.net - ./OpenFileDialogを使用するとターゲットが変更されます
ストリームライターを使用してエラーをログに記録しています
それが設計された方法(理由を聞かないでください)は、アプリケーションがメッセージをログに記録する必要があるたびに新しいストリームライターを開くことです。すべてを./Logs/[current-date].txtに出力します。これは通常、「c:\ myappfolder \ logs[current-date].txt」に解決されます。
すべて正常に動作しますが、ファイルを開くダイアログを使用して「C:\ home \ myfolder \ myfile」と言った後、ストリームライターは「c:\ home \ myfolder \ logs[current-date].txt」に書き込もうとします。
私はこの問題の解決策を知っていますが、何が起こっているのか理解できません
c# - .NETの同じダイアログからファイルまたはフォルダを選択します
同じダイアログからファイルまたはフォルダを選択する「簡単な」方法はありますか?
私が作成する多くのアプリでは、ファイルまたはフォルダーの両方を入力として許可しています。今まで、私は常にファイルまたはフォルダの選択ダイアログを切り替えるためのスイッチを作成するか、ドラッグアンドドロップ機能のみを使用することになります。
これはとても基本的なことのように思われるので、これは以前に作成されたものだと思いますが、グーグルで検索しても多くの情報は得られません。したがって、最初から始めてカスタム選択ダイアログを作成する必要があるように見えますが、このような些細な作業のために車輪の再発明を行っても問題は発生しません。
誰かヒントや既存の解決策はありますか?
UIの一貫性を保つために、OpenFileDialog(またはFolderBrowserDialog)を拡張できると便利です。
windows - GetOpenFileName ディレクトリの変更
質問:
既に実行中のファイルを開くダイアログの現在のディレクトリを変更する方法を知っている人はいますか?
詳細:
すべての検証、既存のチェック、および作成テストがオフになっている (OpenFileName フラグを介して) カスタマイズされたファイルを開くダイアログ (カスタム テンプレートを使用して追加のコントロールを追加) があります。
これらをオフにすると、ダイアログの組み込みの動作が無効になり、ユーザーが「ファイル名」コンボ ボックスにフォルダー名を入力して Enter キーを押すと、現在表示されているフォルダーが変更されます。
その動作を追加したいと思います。これがいつ発生するかは、フック プロシージャを介して検出できます。OK ボタンを非表示にし、アクセラレータをオフにして、独自の「選択」ボタンをコントロールに配置しました。つまり、CDN_FILEOK メッセージが表示されるのは、ユーザーが入力後にテキスト ボックスに Enter キーを押したときだけです。
ただし、ダイアログに現在のディレクトリを変更するようにプログラムで指示する方法がわかりません。
ウィンドウ内の SHELLDLL_DefView コントロールに何らかのメッセージを送信することでこれを達成できるのではないかと考えていましたが、それに関するドキュメントを見つけることができませんでした。
c# - C#OpenFileDialog非モーダル可能
非モーダルな.netOpenFileDialogを作成/作成することは可能ですか?メインダイアログにUI要素があり、ユーザーが押すために常に使用可能である必要があります。