• ベストアンサー

テキスト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