0

アプリケーションのチャートに画像として保存する機能があります。チャート コントロールは、カスタム ロジックを含むカスタム ユーザー コントロールです。また、サイズ、ズームなどに基づくスケーリングもあります。ただし、画像として保存するときに、ユーザーに画像のサイズを設定するオプションを提供したいと思います (例: 800x600 px @ 300 DPI)。

これを行うために、画像のさまざまな設定用にテキストボックス/チェックボックスなどを含むフォームを作成しました。これらの TextBox の 1 つはファイル名用です。ファイル名のテキストボックスは読み取り専用で、クリックすると SaveFileDialog を表示する参照ボタンが付いています。

ユーザーは、メイン フォームのメニューで [画像として保存] をクリックします。以下のコードを使用して ImageExportDialog を表示します。

using(ImageExportDialog dlg = new ImageExportDialog())
{
   if(dlg.ShowDialog() == DialogResult.OK)
   {
      //get the settings selected by the user and generate the image
   }
}

ImageExportDialog で、ユーザーが参照ボタンをクリックすると、SaveFileDialog が次のように表示されます。

using(SaveFileDialog dlg = new SaveFileDialog())
{
   if(dlg.ShowDialog() == DialogResult.OK)
   {
      txtFileName.Text = dlg.FileName;
   }
}

ここでの問題は、ユーザーが SaveFileDialog の [保存] ボタンをクリックすると、予想どおり txtFileName.Text が設定されますが、親カスタム ダイアログも ShowDialog メソッドから返されるようで、DialogResult は次のものと同じです。 SaveFileDialog! 次に、コントロールは、上記のコードの「ユーザーが選択した設定を取得し、画像を生成する」部分に進みます。

ここで何が間違っているのかよくわかりません!

4

1 に答える 1

0

ああああ!!!

自分で問題を見つけました。ImageExportDialog の [OK] ボタンをコピーして貼り付け、SaveFileDialog の [参照] ボタンを作成しました。

[参照] ボタンの DialogResult プロパティが "OK" に設定されていると思います。「なし」に変更すると、問題は解決しました。

于 2010-04-04T09:08:49.090 に答える