フォーカスを移動させないようにするには


tanaka  2003-06-14 09:18:43  No: 78278  IP: [192.*.*.*]

お世話になります。  また初歩的な質問させていただきます。

ボタンをクリックした時にフォーカスがそのボタンに移動するのを
抑止したいのですが、方法が解らず取り合えず代替的な処置をしました。

Private Sub Form_Load()
    Command1.TabStop = False
End Sub

Private Sub Command1_Click()
    Command2.SetFocus
End Sub
(説:Command1ボタンがクリックされた場合フォーカスを違うコントロール
      に移動させることによりCommand1ボタンにフォーカスが移動するの
      を防止)

お手数ではございますがどうか宜しくお願いします。

編集 削除
Say  2003-06-14 18:10:37  No: 78279  IP: [192.*.*.*]

Focusをもたないコントロールで代用してはいかがでしょう?

編集 削除
tanaka  2003-06-14 21:28:24  No: 78280  IP: [192.*.*.*]

Focusをもたないコントロールで代用ということでいろいろ試して
みたのですが、処理はともかくデザイン的にボタンコントロール
に近いものが見つけられませんでした。

この場合どのコントロールを使用すれば良いのでしょうか。

編集 削除
Say  2003-06-14 22:02:52  No: 78281  IP: [192.*.*.*]

>デザイン的にボタンコントロール
>に近いものが見つけられませんでした。

意味がよくわかりません。
ボタンの絵を用意して貼り付けるだけだと思いますが・・・。

編集 削除
tanaka  2003-06-14 22:23:05  No: 78282  IP: [192.*.*.*]

説明の仕方が悪くて大変申し訳ありません。
まだ勉強し始めたばかりで、今回の説明でも的をえてないかもしれません
が追記説明させて頂きます。

デザイン的の意図は、Pictureプロパティに絵を挿入ではなく
ボタンコントロールのように、Formに対して立体的に凸と表現させたい
というこでございます。

編集 削除
Loreley  2003-06-14 22:24:16  No: 78283  IP: [192.*.*.*]

ようするにPictureコントロールを用意して、
マウスダウン時、アップ時に画像を変えてやればいいということです

ところで、これも代替的なものになりますが

Command1.TabStop = False
Private Sub Command1_Click()
Command1.Enabled=False
Command1.Enabled=True
End Sub

という手もありますね。
フォーカスをもてるものがこのボタンしかないと解決になりませんけど、
フォーカスが逃げる先をいちいち指定しなくて良いという利点はあります

編集 削除
tanaka  2003-06-14 23:24:03  No: 78284  IP: [192.*.*.*]

早速のご意見ありがとうございます。

Loreley様の代替処理を試してみましたが、この場合ですとフォーカス自体が
フォーム上から無くなってしまいますので自分の意図としているものと差異
がございました。

ボタンが押されてもフォーカスが移動しないフリーソフトを見たことがあり
ますので、
(Command2にフォーカスが有る状態でCommand1をクリックしてもフォーカス
  がCommand2のままでフォーカスのチラツキ(移動した形跡)も無し)

もしかしたらform_loadでなにか処理があるのかと推測したのですが…
または、ご指摘のようにpictureを使用しているのかもしれません。

もう少し検証してみます

編集 削除
Loreley  2003-06-15 01:04:51  No: 78285  IP: [192.*.*.*]

うーん、
イマイチ理想像が見えないんですが、
私の代替処理で、ボタンを二つ以上おいて、
Command1だけは
TabStop=True

クリックイベント時に
Command1.Enabled=False
Command1.Enabled=True
をしなければできると思うんですけど
(ついでにDefault=Trueにしておけば起動時も安心です)

>(Command2にフォーカスが有る状態でCommand1をクリックしてもフォーカス
>  がCommand2のままでフォーカスのチラツキ(移動した形跡)も無し)
ちなみにマウスをクリックしたままの状態でも
破線が出てこないようであれば、おそらくボタンじゃなくて画像でしょう

それから、
>この場合ですとフォーカス自体が
>フォーム上から無くなってしまいますので自分の意図としているものと差異がございました。

とのことですが、それはフォーム自体にフォーカスされている状態です。

編集 削除
tanaka  2003-06-16 22:57:42  No: 78286  IP: [192.*.*.*]

ご指摘のようにボタンではなく画像なのかもしれません。

キーワード検索でValidate イベントというものがあったのですが
これは全く関係ないのでしょうか?

編集 削除
Loreley  2003-06-17 03:28:51  No: 78287  IP: [192.*.*.*]

>キーワード検索でValidate イベントというものがあったのですが
ヘルプを見ましょう。
ボタンとデータベースは関係ないと思います。

編集 削除