Clickイベントと、KeyDownイベントやDblClickイベントの違い

解決


とおる  2011-05-22 02:54:37  No: 102918

ボタンのClickイベントと、スプレッドのKeyDownイベントやDblClickイベントの違いを教えてください。

フォームが2つあって、フォーム1からフォーム2を呼び出しています。
そのとき、フォーム1をEnabled=Falseにしています。
フォーム2が終了するとき、フォーム1をEnabled=Trueにしています。

フォーム1とフォーム2はスプレッドがあって、フォーム2は検索ダイアログに使っています。
フォーム2にはOKボタンがあります。

OKボタンのClickイベントに、フォーム2のスプレッドからデータを読み取り、フォーム1のスプレッドを検索するコードを書き込んでいます。
(検索は一行一行見ていくようなものです)

フォーム2のスプレッドのEnterキーのKeyDownイベントとDblClickイベントにOKボタンのClickイベントを呼び出す処理を書き込んでいます。
(実際は、CommandButton1.Value=Trueを書き込んでいるだけです)

OKボタンをClickしたときは何とも無く検索ダイアログは終了しますが、スプレッドをEnterキー押したときとDblClickしたとき、ただ単にボタンのClickイベントを呼んでいるだけなんですが、フォーム2が終了したときデバッグして見たんですが強制終了されます。

それは全くトラップできません。

強制終了されたとき、VC++が起動してデバッグ見れるんですが、それが全く分かりません。

VC++を見るとメッセージボックスで、
「ハンドルされていない例外はVB6.EXEにあります:0xC0000005:Access Violation。」
と表示されます。

それで、「0040D405   and         byte ptr [ecx+22h],0FCh」のところに黄色い矢印があります。

何とかKeyDownイベントとDblClickイベントでも強制終了されること無くしたくて、DoEventsを入れたりしたのですが駄目でした。

どなたか対策法知ってられる方いらっしゃいませんでしょうか?

開発環境:VB6(SP6)、Spread3.0J
OS:Win7

困っています。よろしくお願いします。


魔界の仮面弁士  2011-05-23 10:45:37  No: 102919

> 開発環境:VB6(SP6)、Spread3.0J
> OS:Win7
この組み合わせで使ったことは無いのですが、経験則から:

コントロールの作りによるところではあるのですが、キーボード系や
マウス操作系のイベント内で、MsgBox や DoEvents や SendKeys を使ったり
フォームやコントロールをアンロードしたりすると、誤動作(?)する物が
幾つか報告されていたりします。

できる限りは、そうした処理は行わないようにするのが無難なのですが、
どうしても必要なのであれば、Timer コントロールを併用して、
実際のイベントが発生してから、ワンテンポ遅れて MsgBox を
表示させるようにすると、改善することがあります。試してみてください。


胃が  2011-05-25 11:42:00  No: 102920

まずはグレープシティのHPで
Spread3.0Jをアップデートしてみては?
Win7対応かどうかは分かりませんが。

http://www.grapecity.com/japan/support/database/activex_productpatches.htm

Spread3.0Jの頃のはこういうの多かった気がします。


とおる  2011-06-03 10:38:02  No: 102921

アップグレードしたんですが、駄目でした。

残念です。

>Spread3.0Jの頃のはこういうの多かった気がします。
spreadのバージョンが上がっていたら、この問題は解消されてるんでしょうか?
例えば、ver7とかver6とか。。。


Koz  2011-06-05 09:59:21  No: 102922

Win7 ではなくて、Vista で動かしていたとき、同様の現象にあいました。

同じように、検索ダイアログで、Spread のボタンを押したとき、
ダイアログを Unload するようコーディングしていたのですが、
Spread 6.0 では駄目でしたが、Spread 7.0 だと解消していましたよ。


とおる  2011-06-19 04:22:29  No: 102923

遅くなりまして申し訳ございません。

Kozさん、ありがとうございます。

購入することはないかも知れませんが、最新版では解消されていることが
わかって安心しました。

ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加