• 締切済み

ファイルダイアログを開いた時のキャンセルボタンの処理

VB2005 ファイルダイアログを開いた時のキャンセルボタンの処理が良く分かりません。キャンセルボタンを押した時の処理が無い為だと思うのですが、【'System.IO.IOException' の初回例外が Microsoft.VisualBasic.dll で発生しました。】というエラーメッセージが出ます。誰かこのエラーをでなくする方法を教えて頂きたいのですが。よろしくお願いします。

みんなの回答

回答No.1

MSDNライブラリのサンプルコードを見るとわかります。 http://msdn2.microsoft.com/en-us/library/system.windows.forms.filedialog.aspx キャンセルされた時はshowDialog()メソッドの戻り値がDialogResult.Cancelになるため, openFileDialog1.ShowDialog() = System.Windows.Forms.DialogResult.OK はFalseになり,Button1_Clickプロジージャは終了します。 一方でOK押したけど,入力されたファイルがそもそも存在せず,開こうとしたときのために,try…catch…finally…end tryが使われています http://msdn2.microsoft.com/en-us/library/system.windows.forms.dialogresult.aspx

shimakichi
質問者

お礼

himajin100000様 問題解決しました。ありがとうございました。

関連するQ&A

  • 処理をとめるキャンセルボタンのあるダイアログ作成

    開始ボタンを押すと、 ”保存しています。とめたい場合はキャンセルしてください” と言ったようなダイアログにキャンセルボタンがついたダイアログを 表示し(表示中に処理は行われていく)、処理をキャンセルさせたいのですが、 Showで表示させると、キャンセルボタンが反応せず、 ShowModalを使用すると表示と同時に処理が止まってしまい、 ボタンを押さない限り処理が進まずにいます。 何かよい方法はないでしょうか? よろしくおねがいします

  • 初回例外

    VB2010EE 7 pro SP1 フォームを作成して、「デバッグ開始」をすると、最初に 'System.InvalidCastException' の初回例外が Microsoft.VisualBasic.dll で発生しました。 'System.ArgumentException' の初回例外が System.Windows.Forms.dll で発生しました。 とメッセージが出ます。 その後実行していっても特に問題はなさそうなのですが、 この初回例外は何でしょうか? 無視していいものでしょうか?

  • ファイルのダウンロード時に、キャンセルボタンが押されたときのイベントがとりたい

    こんにちは。 初めて質問させていただきます。 サーブレットでPDFファイルのダウンロードを行う処理を実装しています。 クライアントがダウンロードのダイアログでキャンセルボタンを押したときのイベントを サーブレット側で検知し、キャンセルされた場合にはDBへのインサートをしたいのですが、 いろいろ試してみても以下のような場合に入出力例外のcatchができません。 (1)PDFファイルのサイズが300KB以下で、  「ファイルのダウンロード」ダイアログの「保存」ボタンを押した後の「名前を付けて保存」ダイアログ  で「キャンセル」ボタンを押した場合。 (2)PDFファイルのサイズが100KB以下で、  「ファイルのダウンロード」ダイアログの「キャンセル」ボタンを押した場合。 という事なのですが、ダイアログのイベントを取るための解決策や手がかりなどがありましたら ご教授いただけませんでしょうか? どうぞよろしくお願いします。 ソースは追って送信させていただきますm(_ _)m

    • ベストアンサー
    • Java
  • System.Drawing.dllでエラー

    こんにちわ。 いまVB.netでプログラミングの勉強をしている者です。 そこで「http://www.microsoft.com/japan/msdn/vstudio/stdbook/samples.asp」からVB.netのサンプルコードをダウンロードして見ているのですが, 「Chapter3」の「Input Controls」などで実行しようとすると, 「'System.IO.FileNotFoundException' の初回例外が System.Drawing.dll で発生しました。 'System.InvalidOperationException' の初回例外が MyCheckBox.exe で発生しました。」というエラーが発生します。 これはどのように原因でしょうか? 教えてください。よろしくお願いします。

  • 「キャンセル」ボタン付きの処理中ダイアログ

    Windowsアプリで、ある時間のかかる処理を キャンセルボタン付処理中ダイアログを表示し、途中で処理をキャンセル可能にしたいと考えています。 ここの過去ログから上記はマルチスレッドにする必要があると拝見しました。http://oshiete1.goo.ne.jp/kotaeru.php3?q=96951 <メイン画面の開始ボタン処理> ------------------ void C_SampleDlg::OnStart(){  CWinThread *cwt;  C_CancelDlg dlgCancel(this);  cwt = AfxBeginThread(Sample_Proc, &InputParams);  cwt->m_bAutoDelete = FALSE;  cwt->ResumeThread();  EnableWindow(FALSE);  dlgCancel.Create();  dlgCancel.ShowWindow(SW_SHOW);  while(TRUE){   if(dlgCancel.CheckCancel() == TRUE){    // キャンセルが押された時    EnableWindow(TRUE);    dRcd = WaitForSingleObject(cwt->m_hThread, INFINITE);    if(dRcd == WAIT_OBJECT_0)     return;   }   dRcd = WaitForSingleObject(cwt->m_hThread, 0);   if(dRcd == WAIT_OBJECT_0){    dlgCancel.DestroyWindow();    EnableWindow(TRUE);    break;   }  }  return; } <プロシージャ> ---------------------------------- UINT Sample_Proc(LPVOID pParam){  C_SampleDlg->やりたい処理関数呼び出し  ::AfxEndThread(0);  return 0; } 以降別ソース ================================== <C_SampleDlg::やりたい処理関数> ↑ここでdlgCancel.CheckCancel() == TRUEかどうか 判定したい場合、グローバル関数を使うか、または呼出し元で作成したインスタンスをパラメタとして渡して使うべきなのでしょうか。文字数の関係で分かりにくいところもありますが、よろしくお願いします。 ※dlgCancel.CheckCancel()はC_CancelDlgクラスのプロテクト変数を内部で操作しています。

  • InputBox キャンセルボタンが押された時の処理

    こんばんは。 Sub test() Dim タイトル As String タイトル = InputBox("タイトルを入力してください。") If Cancel = True Then Exit Sub ’次のコード・・・ ’次のコード・・・ End Sub このコードを実行した時に 下記のダイアログが出てきて 右のキャンセルボタンを押すと、 「If Cancel = True Then Exit Sub」 でsubステートメントを抜けたいのですが 「Cancel」の部分が 「変数が定義されていません」とエラーになってしまいます。 Dim Cancel As Boolean を追加してキャンセルボタンを押しても TrueではなくFalseになってしまいます。 回避方法を教えてください。 よろしくお願いします。

  • VB6のロストフォーカス時の処理をキャンセルしたい。

    textbox1 textbox2 textbox3 があったとします。 textbox1には ロストフォーカス時にエラー処理が入っています。 登録、終了ボタンがあり、登録ではエラーではじいていいのですが、 終了ボタンの場合、エラー処理を回避(キャンセル)する方法はないでしょうか? こんな感じで 終了.click textbox1.lostfocus の処理をキャンセル end

  • ファイル操作時のclose処理の失敗とは?

    ファイル操作時のclose処理の失敗とは? とりあえず具体的な例を挙げますとFileOutputStreamのclose時。 このときに発生する例外とはどんなケースだろう、 例外が発生したときにはどんな対処をすべきだろうと考えましたが、 発生しうるケースが分かりませんでしたし、 catchに記述すべき処理がわかりませんでした。 JavaDocには以下のように記述されています。 「IOException - 入出力エラーが発生した場合」 意味が分かりません…。考えるのが面倒なので手抜を抜いた感があります。 FileOutputStream (Java 2 プラットフォーム SE v1.4.0) http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/io/FileOutputStream.html FileOutputStream (Java 2 Platform SE 5.0) http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/io/FileOutputStream.html FileOutputStream (Java Platform SE 6) http://java.sun.com/javase/ja/6/docs/ja/api/java/io/FileOutputStream.html バッファ書込みをするクラスの場合には、ディスクの容量が足りなくて close処理時に書込みが失敗して例外発生、ということは 十分にありうると思います。しかしFileOutputStreamでは関係ありません。 デバッガで、途中で処理を止めclose前に処理を終了させてしまっても 問題は生じませんでした(WindowsXP上では)。 質問は以下です。 ・ファイル出力処理のclose時に例外が発生するのはどのような環境・ケースか ・例外が発生した場合にはどんな処理をすべきか(ログ出力以外で) よろしくお願いします。

    • ベストアンサー
    • Java
  • 確認ダイアログで「キャンセル」にフォーカスしておくことは可能ですか?

    confirmで確認ダイアログを出した時に キャンセルボタンにフォーカス(セレクト?)を あてておくことは可能でしょうか?

  • デバッグ中に例外が発生した時、プログラムを止めてコードを黄色でマーク表示するには

    VB2005 Express EditionにSP1を適用しています。 VBの勉強を始めて3ヶ月ほどになります。 以前に使っていたときは、デバッグ時に例外が発生すると、特に例外処理していない場合はイミディエイトウィンドウに例外のメッセージが表示され、プログラムがストップし、問題があったコードが黄色でマークされて表示されていました。 しかし最近PCをフォーマットして改めてVB2005を入れたところ、ほとんどの場合例外時にプログラムが止まらず、コードが黄色でマークされたりもしなくなってしまいました。ただ、イミディエイトウィンドウに、「'System.ArgumentOutOfRangeException' の初回例外が System.Windows.Forms.dll で発生しました。」などと表示されるだけです。どこで例外が発生したのかわかりにくくなって困っています。場合によってはちゃんとプログラムがとまることもありますが、違いなどもよくわからずにおります。 なにか事前の設定を忘れているのだと思うのですが、どこの設定を変えればよいのか教えてください。よろしくお願いいたします。