1

を使用する必要があるアプリケーションを構築していますSaveFileDialog。問題は、ユーザーが の一部を使用することを制限したいことですSaveFileDialog(たとえば、ユーザーにファイル名を編集させたくないなど)。Windows フォームを使用してこれを行うのは非常に難しいと聞いたことがありますSaveAsDialog。ネイティブコードでこれを行う方法を知っていますか? 完全に理解できない例はありますか (Windows API を使用したことがないため、例全体が必要です)。

PS。SaveFileDialogUI の一貫性を保つには、 を使用する必要があります。

4

3 に答える 3

5

ファイル名が固定されていて、ユーザーが別の場所に移動するだけの場合は、FolderBrowserDialog代わりに を使用してください。私見、これも一貫しています。

于 2009-08-14T09:31:19.773 に答える
4

共通のファイル保存ダイアログを実際に使用したいが、ファイル名を読み取り専用にしたい場合は、おそらくネイティブ コードを呼び出す必要があります。フックを使用して多くのカスタマイズを提供できます。いくつかの Windows API を学習する必要があります。

コモン ダイアログ ボックスのカスタマイズ

[開く] ダイアログ ボックスと [名前を付けて保存] ダイアログ ボックス

GetSaveFileName関数(マネージド コードから使用GetSaveFileName)

OPENFILENAME構造(マネージド コードからの使用OPENFILENAME)

私は古いスタイルの Windows API を長い間やっていないので、次のアイデアは単なるアイデアです。おそらく、フックを作成するWM_INITDIALOGと、ファイル名で編集コントロールを見つけることができます。と 名付け られ た ようedt1です . おそらく、コントロールのウィンドウ スタイルを変更して読み取り専用にすることができます。

ただし、ここで提供される他の回答のいくつかは、[名前を付けて保存] ダイアログ ボックスをハッキングするよりも優れた代替手段である可能性があります。

于 2009-08-14T09:43:36.007 に答える
-1

独自のSavefiledialogものをゼロから作成します。

とほとんど同じように見えるフォームを作成するだけですSavefiledialogが、 のLabel代わりに for 名を使用しTextBoxます。

于 2009-08-14T09:27:35.100 に答える