dポイントプレゼントキャンペーン実施中!

 コマンドボタン(cmd1,cmd2,cmd3)を3つ配置したユーザーコントロール(読み取り専用)をフォーム上(form)に配置し、ロードしたとき一番初めにフォーカスがあたるのがcmd1なのですが、これをcmd2にフォーカスを与えたいのです。ユーザーコントロールのタブインデックスはコマンドボタンの名前どおりなのですが、tabキーを動かすことと同じ関数みたいなものはあるのでしょうか?

A 回答 (5件)

フォーカスは表示されていないと指定できないので、


Form_Load()で以下の様にしてみては如何でしょうか。

Private Sub Form_Loas()
  Show  '… (1)
  UserControl.SetFocus  '… (2)
  SendKeys "{TAB}", True  '… (3)
End Sub

(1)フォームを表示する。
(2)ユーザーコントロールにフォーカスを移す。
(3)必要数分タブを移動する。
※コマンドボタン(cmd1,cmd2,cmd3)を3つ配置したユーザーコントロールを配置していると仮定して
上記、サンプルでは、cmd2へフォーカスが設定される。
    • good
    • 0
この回答へのお礼

ありがとうございます!!
とても助かりました。

お礼日時:2003/09/30 22:52

#3の回答が一番妥当とは思うんですが、


ユーザーコントロールというのは何を指しているんでしょうか?
(もしかしてEXCEL?)

Tabキーを実行したいだけなら、
「Sendkeys」をヘルプで調べてみて下さい

この回答への補足

ユーザーコントロールとは
ユーザーが自分で作ることが出来るコントロールです(まんま…)
例えば、今回私が質問させていただいたような、コマンドボタン3つで一つのコントロールの役目をもっている。
ようなことです。(わかりづらいかも…)
もちろんそのユーザーコントロール独特のプロパティやメソッドも自分で作る(というか普通にプログラム書くだけですけど)ことができるのです。

補足日時:2003/09/30 22:42
    • good
    • 0
この回答へのお礼

「Sendkeys」使わせていただきました。
ありがとうございます。

お礼日時:2003/09/30 22:49

SetFocusメソッドを使ってください。

(cmd2.SetFocus)
http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd …

参考URL:http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd …

この回答への補足

ユーザーコントロールにフォーカスをセットすること(自動的にcmd1)は出来るのですが、
その中のコマンドボタン自体にフォーカスを(cmd2.SetFocus)を割り当てる方法がわからないのです。(; ;)
フォーム自体にcmd2が割り当てられているわけではないのでcmd2.SetFocusは使えなかったのです。

補足日時:2003/09/30 01:18
    • good
    • 0

もし


VB6なら

コマンドボタンのプロパティ

cmd2のtabindexを0にすればいいと思います。

この回答への補足

すいません。
質問にも書いた通りユーザーコントロールが
読取専用で他の人も使っているのでプロパティそのものを
いじってしまうわけにはいかないのです。

補足日時:2003/09/30 00:56
    • good
    • 0

VB.netですか VB6ですか?



VB.net なら

cmd.Select()

でどうでしょうか?

この回答への補足

失礼しました。VB6です。

補足日時:2003/09/30 00:56
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!