• ベストアンサー

テキストBOXについて

フォーム上にテキストボックスを配置して実行すると カーソル(入力するための)がきて点滅してしまいます。 そうしなくていい方法はあるのでしょうか?

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

  • ベストアンサー
  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.10

>その時にひとつも選択されていなくて コマンドボタンを押すとエラーメッセージボックス ロード時にコマンドボタンのEnable=Flaseにしておいて、オプションボタンのクリックイベントが発生したら、コマンドボタンのEnable=Trueにした方が単純だと思いますが・・・・ 言われた通りの仕様であるならば・・・ オプションボタンはコントロール配列ですか? もし違うなら、オプションボタンをコントロール配列にしておくと便利です。。。 オプションボタンの名前を全て同じにしておいてIndexに違う番号を割り当てると、コントロール配列が作成されます。 オプションボタン名=Option1 Private Sub Command1_Click()   Dim opBtn    As OptionButton   Dim blnWork   As Boolean   Dim getIndex  As Integer      '各オプションボタンが選択されたかをチェック   For Each opBtn In Option1     If opBtn Then       blnWork = True       getIndex = opBtn.Index       Exit For     End If   Next opBtn      If blnWork Then     MsgBox "[" & Option1(getIndex).Caption & "] が選択されました"   Else     MsgBox "だめー"   End If End Sub

その他の回答 (10)

  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.11

またまた追記です。(最近書き忘れが多い・・・) 親になるピクチャボックスのプロパティを With .Picture1   .Appearance = 0 '平面   .BorderStyle = 0 'なし   .BackColor = &H8000000F 'ここはフォームのバックカラー   .AutoRedraw = True End With とすると、ピクチャボックスがフォームと同化します。

sakky_t
質問者

お礼

いろいろと丁寧にありがとうございました。 初めて知ったこといろいろありましたが とりあえず、みなさんがアドバイスしてくださったことを いろいろと試してみたいと思います。

  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.9

訂正です。 「yanmaa」さんの発言 >さらにTAGOSAKU7さん >~~~~~~ >注意して下さい。 確かにそうですね。。。 Me.Enableの操作は危険でしたね。。。 m(__)m #7なら大丈夫ですよね?

  • yanmaa
  • ベストアンサー率45% (207/457)
回答No.8

テキストボックスのプロパティ「Locked」を「True」にするとユーザはキー入力が不可能になります。但し、マウスカーソルの表示はされます。 あとは「KeyPress」のイベントで「KeyAscii」の値を「0」にするとキー入力をキャンセルできます。 なお値を出すだけならばラベルを使う方が良いでしょう。 さらにTAGOSAKU7さんの「Me.Enabled=False」はフォームに対してすると全てのイベントが取れなくなってしまうので、通常あるイベント中に他のイベントを発生させない為に使うのが本来の使い方ですので Sub 関数orイベント Me.Enabled=False 処理 Me.Enabled=True End Sub と使うのが一般的 そうしないと「閉じる」ボタンすら聞かなくなって停止できないので注意して下さい。 さらに補足 各オブジェクトの「TabIndex」のプロパティ値を変えるとタブキーを押した時のオブジェクトをフォーカス順序を変えれます。0~順に制御(空き番はOK)これが初期のフォーカスにもなりますが、通常SetFocusメソッドを使ってフォーカスを設定します。 但し、SetFocusはEnabled=Trueの時だけ有効です。 がんばってください。

sakky_t
質問者

お礼

丁寧にありがとうございました。 初めて知ったこといろいろありましたが とりあえず、みなさんがアドバイスしてくださったことを いろいろと試してみたいと思います。 がんばります!!

  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.7

もっと簡単な方法がありました。 以下の手順でフォームのデザイン変更を行うと、各コントロールは使用不可になります。 1.フォームにピクチャボックス(Picture1)を作成 2.フォーカスを当てたくない各コントロールをピクチャボックスに貼り付ける (既存のフォームに存在する各コントロールを、SHIFTキーを押しながら選択して切り取りを実行、Picture1をクリックして貼り付け) この時フォーム内に閉じるコマンドボタンがある時は、それはPicture1に貼り付けないでください。 3.Picture1.Enabled = False とするのです。 4.各コマンドボタンを右クリックで最前面へ移動を選択 5.Picture1のサイズをフォームのサイズにあわせる 以上の手順です。 この方法は、書くコントロールの親をフォームからピクチャボックスに変更し、その親を使用不可にする事により、コントロールの無効を制御できます。

  • patak
  • ベストアンサー率23% (108/457)
回答No.6

配置した順番については、プロパティのTabIndexの番号順にフォーカスが移動しますので、それに注意すればいいと思います。 オプションボタンのフォーカスの未指定については、 option.value = false を指定します。 初期画面の場合は、Private Sub Form_Activate() 内で指定すればいいです。 サンプルの画面でいろいろ試してみたりしてがんばってください。

sakky_t
質問者

お礼

ありがとうございました。 いろいろと試してみたいと思います。

  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.5

>どのオプションボタンにもカーソルを選択させたくない場合は どのように設定すればよいですか?? 方法は二つあります。 1.フォームの使用不可 Me.Enabled=False 2.フォームの内容をピクチャボックスに貼り付け、ピクチャボックスをフォームの中に最前面にする。ユーザー側には全てのコントロールが見えるけど、実際には各コントロールの描かれたピクチャボックスが表示されているわけです。

sakky_t
質問者

補足

オプションボタンは3つあって どれかひとつを選んで次のフォームにいきたいんです。 最初そのオプションボタンがあるフォームがLoadされ どれも選択されていなくて、ひとつを選択し コマンドボタンで次のフォームに移りたいんです。 その時にひとつも選択されていなくて コマンドボタンを押すとエラーメッセージボックス を出すようにしたんです・・・。

  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.4

追記です BorderStyle=1(実線)にすると、なおごまかせます。。。

sakky_t
質問者

お礼

ありがとうございます。 そういう使い方もあったんですねぇ。

  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.3

それなら、テキストボックスではなく、ラベルを使用してみては? BackColorを白にするだけで、テキストみたいに見えますよ。

  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.2

カーソルを非表示にする方法なら知ってるのですが・・・ カーソルは表示してあって、点滅させないって事ですよね?

sakky_t
質問者

補足

すみません、説明不足でした・・・。 え~っとカーソル非表示ではなく そこにイベントというか何と言うか・・・ そのテキストボックスにはとある処理をして値だけを表示したいので、 実行する側としては絶対に触らせたくないです。 これでわかりますか??

  • patak
  • ベストアンサー率23% (108/457)
回答No.1

テキストボックス、オプションボタン、チャックボックス、ボタン、等の配置の場合、配置した順序でカーソルの 位置が決まってきます。テキストボックスとは別に、カーソルを設定したい場合は、SetFocusメソッドを使ってフォーカスを設定すると、はじめのカーソルのフォーカス位置が自由に設定できます。

sakky_t
質問者

補足

>テキストボックス、オプションボタン、チャックボックス、ボタン、等の配置の場合、配置した順序でカーソルの 位置が決まってきます。 これは知りませんでした・・・。 あと、オプションボタンを3つ配置しているのですが たしかに実行すると1番最初に配置したオプションボタンに カーソルが選択されています。 どのオプションボタンにもカーソルを選択させたくない場合は どのように設定すればよいですか??

関連するQ&A

  • C# テキストボックスについて

    フォームに置いたテキストボックスに フォーカスを入れると カーソルが点滅するごとに,オーバーライドした OnPaintのハンドラーにイベントが引っかかります。これは当然のことなのでしょうか? カーソルが点滅したぐらいでPaint処理をするのはわずらわしいし不都合がある場合があります。 なので,イベントが引っかからない(起きない)ようにするか,または OnPaintハンドラー内において Paintイベントが起きたのはテキストボックスであるということを知る方法はないのでしょうか。

  • テキストボックスの書式について

    Access97を使用しています。レベルはかなり低い初心者です。 「フォーム」のテキストボックスに単語や文章を入力し、「レポート」で出力するのですが、 句読点が行頭に来たり、問答無用で上配置になったりとかなり見栄えが悪くなってしまっています。 「フォーム」は入力するだけなので何とかガマンするとしても、 「レポート」のテキストボックスで、禁則処理や文字配置などの設定はできないものでしょうか。 横方向の配置はツールバーで簡単に修正できるのですが、縦方向の修正方法がわかりません。 そういえばWord97のテキストボックスも縦配列はできなかったような気が…Excelは「プロパティ」で設定できたけど。 詳しい方、お返事お願いします。

  • テキストボックスのバグでしょうか?

    VB5(SP3)を使用しています。 例えばフォームにテキストボックスを2つ貼りつけて、プログラムを実行します。 IMEの入力設定を「ローマ字入力」の状態で始めたとします。 最初のテキストボックスでキーボードの【Alt】+【カタカナ・ひらがな/ローマ字】を押しても「かな入力」になりません。次のテキストボックスにカーソルを移動すると「かな入力」が有効になります。 ACCESSとかだとその場で有効になります。 これはVBのバグなのでしょうか? 使用PC:DOS/V 使用OS:WindowsNT4.0

  • テキストボックスにカーソルを持ってくる方法。

    こんばんわ。お世話になります。 テキストボックスが10個ぐらいあるホームページを作成していますが、そのページを開いた時に、一番、左上にあるテキストボックスにカーソルが点滅している状態(すぐに入力できる状態)にしたいです。 タブインデックスを"1"にしてみても、そのテキストボックスを一度クリックしないと入力できる状態になりません。 誰か知っている人がいたら教えてください。よろしくお願いします。

    • ベストアンサー
    • HTML
  • Access テキストボックス内の制御について

    テキストボックス内に郵便番号を入力すると、次のテキストボックスに 該当住所を表示させるようにしています。 その後、郵便番号の入力ボックスからTABキーにてカーソルを移動すると、 住所をすべて選択した状態でカーソルが移ってしまうので、 そのまま番地の入力をしようとすると、せっかくの住所がすべて消えてしまいます。 セレクトしないようにする(住所の右端にカーソルが点滅している状態)には、 プロパティで、なにかを直さないといけないと思うのですが、わかりません。 どなたかおしえてください。

  • テキストボックスの表示について

    いつもお世話になります。VBAで質問があるのですが、ユーザーフォームを作り、コマンドボタンとテキストボックスを配置します。 Private Sub CommandButton1_Click() Dim i As Long  For i = 1 To 30   TextBox1.Text = i & "を入力しました"   Worksheets("Sheet1").Range("A1").Value = i & "回目です"  Next i End Sub と入力して実行すると、セルには1~30回まで順に書き込みがありますが、テキストボックスには最後の「30を入力しました」しか表示されません。 これを「1を入力しました」、「2を入力しました」、「3を・・・」というようにテキストボックスに順に表示させるにはどのようにしたらよいのでしょうか? よろしくお願いします。

  • ワードのテキストボックスが

    ワード2003で,今まで普通に使えていたテキストボックスが使えなくなりました。 以前はテキストボックスを描くとその中に自動的にカーソルが点滅して,文字が打てたのですが,いま,線は引けるのですが,中に文字が打てなくなっています。描いたときも線が描かれるだけでカーソルも出てきません。どうすればよいでしょうか?

  • QuickFormのテキストボックス($form->addElemen

    QuickFormのテキストボックス($form->addElement('text'~)を使っての郵便番号検索をしたいです。 郵便番号の入力欄のテキストボックスに郵便番号を入力してエンターを押した場合、郵便番号の検索処理を実行したいのです。 ちなみに、フォームに郵便番号入力欄のテキストボックス($form->addElement('text'~)と郵便番号検索処理を実行するボタンを用意して、 テキストボックスに郵便番号を入力した状態で実行ボタンを押すと郵便番号を検索して住所を取得することはできています。 質問をまとめますと、「郵便番号の入力欄のテキストボックスにカーソルがある状態でエンターを押した場合に既存の処理を実行する方法」があれば教えて下さい。 osはwindows vistaです。 php5を使用しています。 どんなに調べても分からないので、すがる思いで質問しています。 皆様、どうかよろしくお願い致します。

    • ベストアンサー
    • PHP
  • カーソルのあるテキストボックスを特定したい

    開発で使っているツールの事情で一般的に言われる カーソル位置情報がわかる関数が使えません。 現在やろうとしているのは画面にキーボードのような配置でボタンを 作成して画面から入力作業を行ってもらうという事なのですが、 画面にテキストボックスが複数存在する為、ボタン押下時にカーソルが 入っているテキストボックスに入力されるようにしたいのです。 最初に書いたように環境の事情でファンクションが使えないのですが、 どうにかして実現せねばなりません。 もっと良い方法かなにか代替で案はありませんでしょうか。

  • エクセルVBAでの テキストボックス内の値検索について

    お世話になります。 早速質問致します。エクセルVBAでユーザーフォームへ配置された 各テキストボックスへ入力を忘れた箇所がある場合それを見つけ出し メッセージボックスで入力忘れを表示させ、さらに、その入力を忘れ てしまった空欄のテキストボックスにフォーカスを移動させたいので すが、どのように指令したら良いのでしょうか? ちなみにテキストボックスは15個設けています。それらを一度に 検索する方法がありましたら、アドバイスお願い致します。