C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.57502 の関連記事表示

<< 0 >>
■57502  CellEnterイベントでフォームをcloseできない
□投稿者/ german -(2011/03/01(Tue) 22:15:44)

    分類:[VB.NET/VB2005 以降] 

    vb2008になります。

    form_aとform_bと作成し、form_bには、DataGridViewを配置してあります。

    行いたい事は、form_bのDataGridViewから、選択したセルの値を取得した後、
    form_aをOpenし、Form_bをCloseしたいのです。

    現在、DataGridView1_CellEnterイベント内で、
    form_aをOpenした後、form_bを、Me.Closeにしているのですが、

    Me.Closeの箇所で、

    InvalidOperationExceptionはハンドルされませんでした。
    操作はこのイベントハンドラは実行できません。

    とエラーとなってしまいます。

    何とか、form_bを閉じる方法はないでしょうか?

    何卒、宜しくお願いします。
親記事 /過去ログ96より / 関連記事表示
削除チェック/

■57504  Re[1]: CellEnterイベントでフォームをcloseできない
□投稿者/ shu -(2011/03/01(Tue) 23:10:29)
    No57502 (german さん) に返信

    form_aにCloseしてもらえば出来ると思います。
記事No.57502 のレス /過去ログ96より / 関連記事表示
削除チェック/

■57507  Re[2]: CellEnterイベントでフォームをcloseできない
□投稿者/ german -(2011/03/02(Wed) 00:35:13)
    No57504 (shu さん) に返信

    VB初心者で、年を取ると発想の転換ができないもので・・・。

    助かりました。
    本当にありがとうございました。

    また何かあったらお願い致します。



    > ■No57502 (german さん) に返信
    >
    > form_aにCloseしてもらえば出来ると思います。
記事No.57502 のレス / END /過去ログ96より / 関連記事表示
削除チェック/

■57505  Re[1]: CellEnterイベントでフォームをcloseできない
□投稿者/ じゃんぬねっと -(2011/03/01(Tue) 23:31:19)
>
    No57502 (german さん) に返信
    > 行いたい事は、form_bのDataGridViewから、選択したセルの値を取得した後、
    > form_aをOpenし、Form_bをCloseしたいのです。

    Open? ちょっと珍しい表現方法ですね。
    Show メソッド、ShowDialog メソッド、どちらなのでしょうか?
    後述の form_a の絡みを見る限り Show メソッドだと見ていますが。

    > 現在、DataGridView1_CellEnterイベント内で、
    > form_aをOpenした後、form_bを、Me.Closeにしているのですが、

    CellEnter イベントだと "選択したセルの値を取得した後" としては不適切ではないですか?
    DataGridView にフォーカスを移した後に、キーボードで矢印キーを押すだけで選択の余地もなく、Form ごと閉じられちゃうなんてムゴすぎます。

    > Me.Closeの箇所で、
    > InvalidOperationExceptionはハンドルされませんでした。
    > 操作はこのイベントハンドラは実行できません。
    > とエラーとなってしまいます。

    「form_b の CellEnter イベントの中で Me.Close と記述している」
    「例外が起きている個所は StackTrace で見ても Close メソッドである」
    本当に合っていますか?
    Form が参照不能状態で何かが処理されてしまっている典型的なパターンに見えなくもないものですから、ご確認ください。

    # 確かに InvalidOperationException はイベントのタイミング的な問題 (コンポーネント側の WndProc 内部が原因) で起きることもありますが。

    > 何とか、form_bを閉じる方法はないでしょうか?
    > 何卒、宜しくお願いします。

    なぜかわからない時は、一旦あやしいところをコメントアウトなどして、
    現象が再現できるミニマムコードを書くと良いですよ。
    そうやって勉強している時期が俺にもありました。
記事No.57502 のレス /過去ログ96より / 関連記事表示
削除チェック/

■57508  Re[2]: CellEnterイベントでフォームをcloseできない
□投稿者/ german -(2011/03/02(Wed) 00:39:36)
    No57505 (じゃんぬねっと さん) に返信

    解決致しました。
    本当にありがとうございました。

    現象が再現できるミニマムコードを書くと良いですよ。
    というアドバイスなのですが、
    VB初心者なのでよくわかりません。
    参考になるサイトなどございましたら、ご教授下さい。

    また何かあったら、宜しくお願い致します。



    > ■No57502 (german さん) に返信
    >>行いたい事は、form_bのDataGridViewから、選択したセルの値を取得した後、
    >>form_aをOpenし、Form_bをCloseしたいのです。
    >
    > Open? ちょっと珍しい表現方法ですね。
    > Show メソッド、ShowDialog メソッド、どちらなのでしょうか?
    > 後述の form_a の絡みを見る限り Show メソッドだと見ていますが。
    >
    >>現在、DataGridView1_CellEnterイベント内で、
    >>form_aをOpenした後、form_bを、Me.Closeにしているのですが、
    >
    > CellEnter イベントだと "選択したセルの値を取得した後" としては不適切ではないですか?
    > DataGridView にフォーカスを移した後に、キーボードで矢印キーを押すだけで選択の余地もなく、Form ごと閉じられちゃうなんてムゴすぎます。
    >
    >>Me.Closeの箇所で、
    >>InvalidOperationExceptionはハンドルされませんでした。
    >>操作はこのイベントハンドラは実行できません。
    >>とエラーとなってしまいます。
    >
    > 「form_b の CellEnter イベントの中で Me.Close と記述している」
    > 「例外が起きている個所は StackTrace で見ても Close メソッドである」
    > 本当に合っていますか?
    > Form が参照不能状態で何かが処理されてしまっている典型的なパターンに見えなくもないものですから、ご確認ください。
    >
    > # 確かに InvalidOperationException はイベントのタイミング的な問題 (コンポーネント側の WndProc 内部が原因) で起きることもありますが。
    >
    >>何とか、form_bを閉じる方法はないでしょうか?
    >>何卒、宜しくお願いします。
    >
    > なぜかわからない時は、一旦あやしいところをコメントアウトなどして、
    > 現象が再現できるミニマムコードを書くと良いですよ。
    > そうやって勉強している時期が俺にもありました。
記事No.57502 のレス / END /過去ログ96より / 関連記事表示
削除チェック/

■57516  Re[3]: CellEnterイベントでフォームをcloseできない
□投稿者/ じゃんぬねっと -(2011/03/02(Wed) 16:30:45)
>
    No57508 (german さん) に返信
    > 現象が再現できるミニマムコードを書くと良いですよ。
    > というアドバイスなのですが、
    > VB初心者なのでよくわかりません。

    消去法という解決方的な話ですので、VB が初心者かどうかは関係ないです。

    > 参考になるサイトなどございましたら、ご教授下さい。

    ミニマムコードという言い回しがまずかったでしょうか。
    要するに 「不具合の現象が再現できる必要最小限のコード」 のことです。

    不具合が起きているソースコードは、あなた様の目の前にあるソースコードです。
    それを最小限化するのに参考になるサイトがあったら、逆に怖くないですか? (w

    回答がついているのに、なぜ回りくどいことを書いたかと申し上げますと、
    今回の件で、何故 InvalidOperationException という例外が発生するのかを、
    理屈で理解しないと、別の機会に同じことを繰り返すのではないかと思ったのです。
    (あと正しく伝えるためのデバッグ・確認作業で自己解決できるのではとも思いました)

    プログラムは理屈の塊ですから、理屈で理解することが大切だと思います。
    わかりにくい書き方をしてしまい、申し訳ありませんでした。
記事No.57502 のレス / END /過去ログ96より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -