• ベストアンサー

最初のフォーカス表示

こんにちは、honiyonです。  Formを表示後、最初にフォーカスがあたっているコントロールを任意に設定したいのですが、これはどうすれば良いでしょうか?  Form_LoadでSetFocusは出来ないし、Form_PaintではPaint毎にフォーカスが再設定されてしまいますよね。 D○lphiみたいにForm_Showがあれば良いですが・・・むぅ、悩んでます(^^;  宜しくお願い致します(..

質問者が選んだベストアンサー

  • ベストアンサー
  • todo36
  • ベストアンサー率58% (728/1234)
回答No.1

TabIndexプロパティを0にすればOK

honiyon
質問者

お礼

こんにちは、honiyonです。  ご回答ありがとうございます(..  なるほど、1から番号ふっていました(^^;  「最小値のTabIndexにフォーカス設定」とはならないのですね。    無事解決しました。  ありがとうございました(..

その他の回答 (1)

  • mfuku
  • ベストアンサー率50% (173/345)
回答No.2

下の方がおっしゃるとおり、Tabindex = 0 が正統派です。 しかし、ある条件により、フォーカスを当てる場所を動的にしたい場合などの制約がある場合は・・ From_Loadで Me.Show の後、任意の場所にSetFocusすればOKです。

honiyon
質問者

お礼

こんにちは、honiyonです。  なるほど、そのような技もあるのですね(メモメモ    ありがとうございました(..

関連するQ&A

  • SSTabのフォーカスの移動について!

    Windows2000、VB6.0、SP5で開発しています。 質問は、SSTabのフォーカス移動についてです。 SSTab上のコントロール上にフォーカスがある時、 Tabでフォーカスの移動をしてると、急にフォーカスが見えなくなってしまうことがあります。 調べてみると、隠れているコントロールに移動してしまってるみたいなんですが、 これは、解決策はないんでしょうか? 最後のコントロールでSetFocusを使うとかあったのですが、その場合、 最後のコントロールにフォーカスがある時に、どのコントロールをクリックしても、 最後のコントロールのSetFocusで設定したコントロールにフォーカスが移動してしまいます。 良い方法をご存知の方、いらっしゃいましたら、 どうぞ、ご教授よろしくおねがいしますm(_ _)m

  • どこにもフォーカスを当てたくない

    フォームを開いたとき、どこにもフォーカスを当てたくないです。 アクセス2003です。 フォームにテキストボックスを1つ設置して、そのフォームを開くと フォーカスがテキストボックス上で、点滅しますが どこにもフォーカスを当てない方法あるのでしょうか? Private Sub Form_Open(Cancel As Integer) Me.詳細.SetFocus End Sub とするとコンパイルエラーになってしまいます。 不可能でしょうか?よろしくお願い致します。

  • エクセル フォームを開いたときにどこにもフォーカス

    エクセル フォームを開いたときにどこにもフォーカスを当てたくない 図のように、UserForm1の上にTextBox1とTextBox2を設置しました。 このまま、F5を押して実行すると、 TextBox1にフォーカスが当たるのですが、 どこにもフォーカスを充てずにフォームを表示する方法はありますか? 見えないコントロールを作って、SetFocusをそこに充てるしかないのでしょうか?

  • テキストボックスへの引数によるフォーカスの設定

    こんにちは。 ASP.NET(VB)でサイトを作っています。 ページを表示した時にテキストボックスにフォーカスを設定したいと思っています。 ネットなどで検索していましたら<body onLoad="document.Form.textbox.focus()"> とすれば出来るようなので、実際に設定してみましたら、「'document.form.LoginID'はNullまたはオブジェクトではありません」というエラーが出てしまいます。 どうすればASPのコントロールにフォーカスを設定できますか?

  • フォームを継承した際の、コントロールへのフォーカスの設定方法

    こんにちは。 フォームを継承した際の、コントロールへのフォーカスの設定方法について質問です。 ※利用しているバージョンは、.NET 2003 です。 1 : フォーム『 frmParent 』と、frmParent を継承したフォーム『 frmChild 』があります。 2 : frmParent には、ボタン『 btnTest 』が配置されています。 3 : frmParent 内で、Load イベントの ハンドラとして、以下を記述します。    Private Sub frmParent_Load( _      ByVal sender As Object, ByVal e As System.EventArgs) _      Handles MyBase.Load      btnTest.Focus()    End Sub 4 : 以下を実行し、frmChild フォームをディスプレイに表示します。    Dim frm As New frmChild    frm.Show() この際、btnTest ボタンにフォーカスが設定された状態でフォームを表示したいのですが、実際はフォーカスが設定されていません。 btnTest.CanFocus の値を調べると、False になっているのですが、なぜ CanFocus が False になるのか理由がわかりません。 ヘルプによると、入力フォーカスを受け取る条件として、  1 : コントロールの ControlStyles.Selectable スタイル ビットが true に設定されていること  2 : コントロールが別のコントロールに格納されていること  3 : すべての親コントロールが表示されており、有効であること と書いてあったのですが、1 がよくわかりません。 根本的に考え方が間違えているのかもしれません…。 フォーカスを設定する方法をご教示ください。よろしくお願い致します。

  • EXCEL2000でTextBox1にフォーカスをあてたい

    いつもお世話になります。 OSはWin XP Home EXCEL2000です。 現在以下の現象で悩んでおります。 EXCEL2000のVBAでUserform1(シート上ではない方です)を作り、そこにTextbox1(TabIndex = 0)とCommandButton1(TabIndex = 1)を配置しました。 UserFormを初回に表示した時、及びフォームの右上の「X」で閉じた後は問題ないのですが、以下のコードでUserForm1を閉じた後に再び他のマクロからUserForm1.showとやると、どこにもフォーカスがない状態でUserForm1が立ち上がります。 Private Sub CommandButton1_Click() UserForm1.TextBox1.SetFocus UserForm1.Hide End Sub 一方他のマクロから UserForm1.show UserForm1.textbox1.SetFocus とやってみても期待通りにフォーカスはあたりません。 どのような場合でもUserFormが表示されたときにはtextbox1にフォーカスをあてるようにしたいのです。 尚、この現象はEXCEL2002だと同じコードでも問題なくフォーカスがあたります。 以上よろしくお願いします。

  • テキストボックスにフォーカスを当てる?

    こんばんは,すみませんよろしくお願いします。 テキストボックスにフォーカスを当てるには,例えば, TextBox1.SetFocus のようにするんだと思うのですが,テキストボックスに初期値が設定されていたときには,上記のようにすると,初期値のテキストの右側に線のようなポインタがテキストコントロール内にでてきます。 しかし,このような状態では,いったん初期値を消さないと,別の値に書き換えることは出来ません。 テキストコントロール内に初期の値として,何らかのテキストが入力されているとき,文字列が選択された状態になっていれば,即,別の値を入力することが出来ますので,ユーザーフォームをshowしたときに,テキストボックス内の初期値 (例えば,「ここに名前を入力してください」などの文字列) を選択した状態にしたいのです。どのようにすれば良いのでしょうか?何度もすみません。

  • フォームを開く時のイベント処理

    Visual Basic 6.0 あるフォーム読込時イベント[Private Sub Form_Load()]で コマンドボタンにフォーカスを移動しようとしたら、エラーしてしましました。 Private Sub Form_Load() CommandButton.SetFocus ’プロシージャの呼び出し、または引数が不正です End Sub Form_Open や BeforeUpdate ? 開いた後にフォーカスをセット出来る イベント処理は無いでしょうか? ご教授願います。

  • フォーカスを無効にしたいのですが、できません。どうしたらいいでしょう?

    フォーカスを無効にしたいのですが、できません。どうしたらいいでしょう? VB2010の環境で電卓を作っています。計算処理は問題ないのですが、一番肝心なのは、フォーカスフォーカスの問題です。 フォーム上にボタンコントロール多数及びラベルコントロールがあります。 Windowsに付属する電卓を参考に作っています。Windowsの電卓では、ボタンを押したとき、そのままフォーカスは設定されないようになっていることがわかります。よって、エンターキーを押したときに、フォーム上のボタンコントロールの例えば”1”をクリックした動作が起こるわけではありません。それは、”1”のボタンにフォーカスが設定されていないからです。 このようにフォーカスに左右されないような状況を作りたいのですが、どうもできなくて苦戦しているところであります。 どのように記述したらよいのでしょう。 どうかご教授お願い申し上げます。

  • テキストボックスの桁数をカウントして、フォーカス移動

    Win2000、VB6.0です。 テキストボックスとADOコントロールを使用して、レコードを編集・更新するフォームを作っています。 ただ、簡単に書く為に下の説明文ではDBについては書きません。 Form1に、Text1とText2があるとします。 Tab移動だけではなく、Text1に4桁目まで入力された時点で、Text2へフォーカスが移動するようにしたいと考えています。 Text1のChangeイベントで、 ------------------------------------ Private Sub Text1_Change()   If Len(Text1.Text) >= 4 Then     Text2.SetFocus   End If End Sub ------------------------------------ 以上のように記述しています。 ただ、Form1のロード時に、 ------------------------------------ Private Sub Form_Load()   Text1.Text = "1111" End Sub ------------------------------------ 以上のように記述すると、 「実行時エラー"5";」 「プロシージャの呼び出し、または引数が不正です。」 とエラーが発生してしまいます。 ロード時にテキストボックスに表示しつつ、入力された現在の桁数をカウントして、フォーカス移動する方法は無いのでしょうか? よろしくお願いします。