問題タブ [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.
silverlight - Silverlight OpenFileDialog DoEvents と同等
ユーザーが選択した大きなファイルを処理しています。私のコードは次のようになります。
これにより UI がフリーズするため、ユーザーがファイルを選択する前に、最初に読み込みメッセージを表示して、何かが起こっていることを視覚的に示すようにしました。
残念ながら、これでもファイルの処理中に UI が完全にフリーズします。
ファイルを選択した直後に MessageBox を起動すると、完全に機能することがわかりました。ランタイムでイベント/UIアイテムをフラッシュするために、フードの下で「DoEvents」タイプの呼び出しを行うと思います。
このような場合でも、大きなファイルの処理は遅くなりますが、読み込みメッセージが表示され、画面の UI が同期されます (待機カーソルを表示するなど、実際には他のことを行っています)。
質問:
Silverlight には DoEvents 機能がありません。MessageBox.Show 以外に、UI を同期させ、OpenFileDialog が UI をフリーズするのを防ぐのと同じ効果を持つ呼び出しはありますか?
c++ - 共通ファイルダイアログで現在選択されているファイルの本当の名前を取得しますか?
共通ダイアログのリストビューで、選択したアイテムのテキストを取得できます。ただし、PIDLを取得することはできません。また、ユーザーが既知の拡張子(デフォルト)を非表示にすることを選択した場合、拡張子またはPIDLがないと、どのファイルが選択されたかを実際に知ることはできません。
したがって、これを解決するための可能な方法は次のとおりです。
- 標準のファイルを開くダイアログからIShellViewを取得します。基礎となるIShellViewは、現在の選択に対するPIDLが何であるかを知ることができます。したがって、IShellViewを簡単に入手できれば、私は金色になります。残念ながら、それを行うCDM_xxxは見当たりません。そして、私はそれを達成するかもしれない何かの頭のてっぺんから考えることはできません!!! :(
- 他のアイデア?!
以前は、Windows 9x、2000、およびXPバージョンの共通ファイルダイアログが各アイテムのPIDLをLVITEMデータに保存しているという事実に依存していました(Paul DiLasciaの元のクレジット)。
LPCITEMIDLIST pidlItem =(LPCITEMIDLIST)pListCtrl-> GetItemData(nItem);
ただし、Vistaの一般的なコントロール以降では、その手法は失敗します:(
何かご意見は?
編集:リストビューで現在選択されているアイテムだけでなく、リストビューのすべてのアイテムについてこの情報を取得できる必要があります。
EDIT2:私がとても深く掘り下げる必要がある理由:
以前のバージョンのアプリでは、次の機能を提供しています。(1)カスタムボタン[プレビュー]を押してダイアログを閉じますが、ビューに現在表示されているアイテムのリストを、表示されている順序でアプリに転送します。現在強調表示されているもののインデックス。このリストは完全に指定する必要があります。すべて「J1329192」である3つのファイルを表示します(実際に3つのファイル「J1329192.xyz」「J1329192.xzy」および「J1329192.zyx」(この順序で)がある場合)は役に立ちません。
ユーザーは「ファイル名:」フィールドに部分的なファイル名フィルターを入力でき、共通ダイアログには、ユーザーが選択したソート順で、指定された部分的なフィルターに一致するファイルのみが表示されます。したがって、ユーザーがプレビューしたいものを正確にアプリに報告するには、リストビューコントロール(または共通ダイアログ自体)からその情報をクエリできる必要があります。
ファイルダイアログに他の機能拡張も行います。たとえば、ユーザーの現在の選択をサムネイルとして表示するインプレースプレビューペインや、カスタムの最近の場所のインターフェイスなどがあります。これはすべて可能でした(多くの場合) Vistaより前の作業)。ビスタ後、私は壁にぶつかりました。当面は、独自の機能がほとんどない標準のファイルダイアログを使用しますが、これは顧客との相性がよくありません(機能Xはどうなりましたか?!)
他にも機能強化がありますが、これは大まかな概要です。そして、それらはすべて、「本当に、正直なところ、インデックスXのビューに具体的にどのファイルがあるのか」という知識を必要とすることになります。そして、理由は不明ですが、Microsoftはそのようなインターフェイスを提供する必要性を感じていないようです。実際、彼らは決してしませんでした。いくつかのハッキングとリバースエンジニアリングによってのみ、内部で物事がどのように機能するかを理解し、必要な情報を得ることができました。そして、はい、それはサポートされていません、そしてはい、MSは必然的に私たちのコードを壊しました。私は彼らのせいではありません-私が不快だと思うのは、彼らの新しい、より洗練されたインターフェースが古いものよりもはるかに閉じていることです-そして彼らはこれらのダイアログの機能強化を行うためのより多くの先行インターフェース(サポートされているインターフェース)を提供していませんでした。
.net - C#.net の OpenFileDialog でボタン テキストを変更する
C#.NET の Windows.Forms で OpenFileDialog のボタンのテキストを変更する方法を知っている人はいますか?
visual-studio - ビスタと2008環境でファイルダイアログを開くことが機能しない
Vistaを使用しています。Visual Studio 2008のセットアップおよび展開プロジェクトでMSiファイルを設計し、カスタムアクションを1つ追加しました。カスタムアクションで、OpenFileダイアログを開いています。この[ファイルを開く]ダイアログには、マップされたドライブまたはネットワークの場所は表示されません。では、ファイルを開くダイアログを作成してネットワークドライブをマップするにはどうすればよいですか。
winforms - OpenFileDialogは常に*.URL(インターネットショートカットファイル)を表示します
私はまたであるOpenFileDialog
1つのシングルを持っています。ダイアログが開いたときに、すべてのインターネットショートカットも一覧表示されるのはなぜだろうか(たとえば、フォルダーへのショートカットは取得できますが、*。URLファイルは取得できません)。Filter
DefaultExt
ユーザーに表示されるリストにネットで含めるためにオンにできるマジックスイッチはありますか?
現在、ユーザーがファイルを選択したことを検出した場合に設定して、FileOk
イベントハンドラーで条件を処理する必要があります(100%の時間も機能しておらず、一部のショートカットはまだフィルターを通過しているようです)。ただし、そもそもリストにそれらを含めない方がよいでしょう。e.Cancel
true
*.URL
FileOk
delphi - Delphi 7 および Vista/Windows 7 の共通ダイアログ - イベントが機能しない
Delphi 7 Dialogs.pas を変更して、新しい Windows 7 の [開く/保存] ダイアログ ボックスにアクセスしようとしています (「Delphi を使用した Windows Vista 対応アプリケーションの作成」を参照)。提案された変更を使用してダイアログを表示できます。ただし、OnFolderChange や OnCanClose などのイベントは機能しなくなりました。
これは、Flags:= OFN_ENABLEHOOK を Flags:=0 に変更したことに関連しているようです。Flags が 0 に設定されている場合、TOpenDialog.Wndproc はバイパスされ、適切な CDN_xxxxxxx メッセージはトラップされません。
新しい共通ダイアログを表示し、元のコントロールのイベント機能を維持する D7 Dialogs.pas のコード変更を提案できる人はいますか?
ありがとう...
c++ - 呼び出し元は、文書化されていないWM_GETISHELLBROWSER(WM_USER + 7)メッセージを介して取得したIShellBrowser *を解放する必要がありますか?
ファイルを開いて保存するダイアログの共通ダイアログHWNDからIShellBrowserインターフェイスポインタを取得する、文書化されていないメッセージが存在することを指摘する人もいます。
しかし、そのポインターがAddRefされているのか、それとも返される生のアドレスだけであるのか、Release()を呼び出さないのかについて、矛盾する情報(または情報がない)がありますか?
c# - C#で間違ったディレクトリにあるファイルを探しているStreamReader
Windowsフォームを使用しているプログラムがあります。そのフォームでは、openFileDialogを使用して、あるディレクトリでファイルを開きます。次に、別の関数で StreamReader を使用し、streamReader で開きたい 2 番目のファイルを big/debug ディレクトリに持っています。しかし、何らかの理由で openFileDialog で最初のファイルを開いた後、StreamReader は通常どおり bin/debug ではなく、そのディレクトリ内の 2 番目のファイルを探します。
なぜ彼がそれをするのか、どうすれば解決できるのか誰か知っていますか?
前もって感謝します、
グレッグ
.net - OpenFileDialog の再利用
各テキストボックスの横に 2 つのテキストボックスと 2 つのボタン [...] があります。どのボタンがクリックされたかに基づいて、1 つの OpenFileDialog を使用して FilePath をそれぞれのテキスト ボックスに渡すことは可能ですか? つまり、ボタン 1 をクリックしてダイアログをロードすると、ダイアログで [開く] をクリックすると、fileName が最初のテキスト ボックスに渡されます。