2

ファイル名編集ボックスの代わりにファイルリストビューにフォーカスを設定してTOpenDialog、TSaveDialogを開くことは可能ですか?

どうもありがとう

よろしく

4

1 に答える 1

4

好きなコントロールにフォーカスを置くことができますが、そうするとダイアログの準備が整います。「OnShow」イベントはそのために早いです。たとえば、「OnFolderChange」イベントをフラグと一緒に使用して、フォルダーが変更されるたびにフォーカスを変更しないようにすることができます。

type
  TForm1 = class(TForm)
    Button1: TButton;
    OpenDialog1: TOpenDialog;
    procedure OpenDialog1FolderChange(Sender: TObject);
  private
    FDlgSetFocus: Boolean;

uses
  dlgs;

procedure TForm1.Button1Click(Sender: TObject);
begin
  FDlgSetFocus := False;
  OpenDialog1.Execute;
end;

procedure TForm1.OpenDialog1FolderChange(Sender: TObject);
begin
  if not FDlgSetFocus then
    windows.SetFocus(GetDlgItem(GetParent((Sender as TOpenDialog).Handle), lst2));
  FDlgSetFocus := True;
end;
于 2011-04-04T12:24:59.053 に答える