VB.NETでテキストボックスの入力抑制方法と初期値の設定

このQ&Aのポイント
  • VB.NETでテキストボックスの入力抑制や初期値の設定をする方法について教えてください。
  • フォームAのテキストボックスAに入力した内容をフォームBのテキストボックスBに表示し、変更できないようにする方法について教えてください。
  • また、テキストボックスBの初期表示を固定し、入力不可にする方法についても教えてください。
回答を見る
  • ベストアンサー

テキストボックスの入力抑制

使用言語はVB.NETです。 フォームAのテキストボックスAに文字を入力し確定すると、 フォームBが起動、フォームBのテキストボックスには、 テキストボックスAで入力した内容が表示されており、それを 変更することはできない。 ただし、テキストボックスAに何も入力せずに起動した場合、 テキストボックスBの内容は書き換え可能、というようなものを 作りたいと思っています。 また、テキストボックスBを入力不可にするには、Enabled=False 以外の方法で行いたいのです。 例えば、テキストボックスAで1と入れた場合、テキストボックスBの 初期表示1をBSで消しても、違う値をいれても、常に1に表示が戻される、 というようなものにしたいのですが…。 上記のようなものを作るには、どのように処理を作っていけば 良いのでしょうか? サンプル的なコードを教えていただけるとありがたいです。 よろしくお願いします。

noname#32335
noname#32335

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

  • ベストアンサー
noname#187541
noname#187541
回答No.1

こんにちは。 テキストボックスを入力不可にする方法として、Enabled=False以外ではReadOnlyプロパティをTrueにする方法があります。 フォームAのテキストボックスAのValidatedイベントに Form2.TextBox1.Text = Me.TextBox1.Text If Me.TextBox1.Text = "" Then Form2.TextBox1.ReadOnly = True Form2.TextBox1.BackColor = Color.White Else Form2.TextBox1.ReadOnly = False End If Form2.Show() と入れます。 どうでしょうか。

noname#32335
質問者

お礼

お礼が遅くなりまして申し訳ありません。 まさに理想通り、こういう状態で入力を受け付けないように したかったのでした。 ありがとうございました。

その他の回答 (1)

回答No.2

逆に質問したいのですが、フォームA 上で何が起こったときにフォームB が起動するのですか読めません。 質問文の中では 1) テキストボックスA に入力した文字が確定したとき 2) 何も入力せずに の 2パターンでフォームB が起動するような説明をなさっています。 「入力した文字が確定したとき」というのは具体的にユーザーが何をした時をイメージしていますか? 「何も入力しない」ってケースでは何をトリガーにしてフォームB を起動させるのですか? それ以外の部分は、フォームA のプロシージャから Dim formB As New フォームB として フォームB のインスタンスを作っておいて、 条件に応じて formB.テキストボックスB.Text = xxxx formB.テキストボックスB.ReadOnly = True などを設定し、 最後に formB.Show または formB.ShowDialog(Me) でフォームB のインスタンスを表示すれば良いかと。

noname#32335
質問者

お礼

テキストボックスの入力制御の方法だけ シンプルに聞けばよかったですね。 条件分岐で悩んでいるわけではありません。

関連するQ&A

  • テキストボックスへの入力

    アクセス97にてソフト開発をしております フォームAの「合計」テキストボックスに表示されている数字を、フォームAを閉じたときにフォームBの「金額」テキストボックスに入力できるようにしたいのですが、 どの様にすればいいのでしょうか この二つのテキストボックスはODBCリンクテーブルと連結しています

  • VB.NETでブラウザのフォームに入力する方法について

    VB.NETでブラウザに表示されたWEBページのフォームに データを入力したり、ラジオボタンの設定をしたりしたいのですが、 入力内容によってフォームの入力欄がEnabled = True や Falseに 切り替わる入力欄がある場合、VBでそのエレメントに データを設定してもフォームを送信などをした際に反映されていません。 例えばラジオボタンで選択A、選択B、その他という3つの選択があって、 その他を選択すると、テキスト入力エリアが入力可能になるというフォームです。 ブラウザに直接手動で設定を変更すれば、入力欄のEnabledが切り替わるのですが、 VBでラジオボタンを設定した場合は切り替わらず、Enabled = False の状態のまま VBでデータを設定しても受け付けられないようです。 この為、VBでデータを設定した際に、別の欄のEnabledの状態を変えたいのですが、 どのような方法でやれば良いでしょうか。ご教授いただければ幸いです。

  • テキストボックスの内容でチェックボックスの既定値

    下記質問の続きです。 http://okwave.jp/qa/q8186736.html Accessで、 チェックボックスにチェックを入れることで テキストボックスに文字を表示させています。 そのフォームをいったん閉じると、 テキストボックスには 前回チェックボックスで入力した文字が反映されているのですが チェックボックスのチェックがすべて外れてしまっています。 フォームを開いたとき、 テキストボックスの内容によって、 配置したチェックボックスにチェックを入れたいです。 テキストボックスに 「A C」 と入っていたら ■A □B ■C □D □E としたいです。 (開いたあとは、また別の所にチェックを入れたり外したりします) チェックボックスのプロパティ「既定値」のところに IF([テキストボックス] like "*"&"A"&"*",ture,false) などとしてみたのですがうまういきませんでした。 ご教授お願いいたします!

  • access vbaのテキストボックスについて

    例えば、sampleというテーブルがあり、そのテーブルは列A,列Bという構成だったとします。データとしては下記のようにします。  A  B 1 a1 b1 2 a2 b2 3 a3 b3 この時、フォーム上にテキストボックス1とテキストボックス2を作成し、コントロールソースにそれぞれsampleテーブルの列A、列Bを指定します。 このとき、3行目のデータ(a3とb3)を表示するときだけテキストボックスを太枠にすることは可能でしょうか? もしくは、他のテキストボックスと見栄え的に変えることは可能でしょうか? よろしくお願いします。

  • テキストボックスに入力された内容を他のテキストボックスにコピーしたい

    テキストボックスA、Bがあるとして、テキストボックスAに何らかの文字列を入力します。 その状態でボタンを押すと、テキストボックスAの内容をテキストボックスBにコピーするようにしたいのですが、このようなことはjavascriptで可能でしょうか?

  • フォーム上のテキストボックスの値を変更させない方法って?

    アクセス2000を使っています。 フォーム上にテキストボックスを作成して、テーブル の値を表示しています。 VBAでこのテキストボックスの値が1の時は, me!txt.enabled=true(テキストボックスが開く) 0の時は、me!txt.enabled=false(テキストボックスがグレーアウト)というようにさせたいのです。さらにこのテキストボックスの値を変更できないようにしたいのですが方法はありますか? 要は、表示だけさせたいのです。 プロパティで値ロックするとenableが利かなくなります。 よろしくお願いいたします

  • エクセルVBAのユーザーフォーム上のテキストボックスについての質問です

    エクセルVBAのユーザーフォーム上のテキストボックスについての質問です。 Aのユーザーフォームの内容をBのユーザーフォームのテキストボックスへ引き継いで、Bのユーザーフォーム上で内容を編集するという仕組みにしたいのです。 Bのユーザーフォームは新規入力もかねたユーザーフォームなので、テキストボックスのイベントにAfterUpdateを使用して、テキストボックスの内容が書き換えられるとデータベースから検索して新規か既存か判断させています。 AのユーザーフォームからBのユーザーフォームのテキストボックスへ引継ぎさせるときにこのAfterUpdateを発生させたくないのですが、Application.EnableEvents=Falseなどを使ってもイベントが発生してしまいます。 また、イベントがどのタイミングで発生するかと、コードをステップで実行させると、このイベントは発生しません。そのために、いきづまってしまいました。 AのユーザーフォームからBに引き継ぐ処理  ユーザーフォームB.Load ---ユーザーフォームBのイニシャライズが実行される  ユーザーフォームB.テキストボックス = ユーザーフォームA.テキストボックス  ユーザーフォームB.Show ちょっと簡単に書きすぎですがこんな感じです。 コードをステップで実行するとユーザーフォームBのAfterUpdateは実行されません。(VBAエディタのバグ?) どなたか回答お願いします。

  • 【Access】 テキストボックスへの入力

    毎回お世話になっております。 現在、フォームの編集をしております。 フォームはヘッダー部分と詳細部分に分かれており、ヘッダーの部分に「テキストボックスAに取引先コードを入力し、検索ボタンを押すと、同ヘッダーのテキストボックスBに該当する取引先情報が表示される」仕組みになっています。 詳細の部分には、新規の顧客情報を入力するテキストボックスが並んでおり、各レコードをテーブルに保存できるようになっています。 現在解決したい点なのですが、ヘッダーのテキストボックスBに表示された取引先情報を、ボタンを押す等の何らかの方法で、詳細の中のテキストボックスCに入力されるような仕組みが出来れば、と考えております。 (テキストボックスCのコントロールソースを変更する方法も考えましたが、各項目のソースはクエリとリンクしているので、この方法は止めました。) アイディアをお持ちの方、アドバイスを頂けますと幸甚です。 宜しくお願いします。

  • Access2007 textboxに入力できない。

    Access2007 textboxに入力できない。 非連結のフォーム上に、非連結のテキストボックスを張り付けたのですが、入力ができずに困っています。 カーソルは来ていて、試しにVBAで値を入れてみると表示はされるのですが、プロテクトが掛っているように、入力ができません。 テキストボックスの Enabled=true Locked=false になっています。 どのあたりを見ればよいのかもわからず、苦慮しております。 よろしくお願いいたします。

  • チェックボックスの内容をテキストボックスに表示

    フォームにチェックボックスをいくつか作成しました。 チェックした内容をテキストボックスに羅列して表示するには どうしたらいいのでしょうか? □A □B □C ・ ・ ・ とあり、AとCにチェックを入れたら テキストボックスに「A C」と表示させるようにしたいです。 お願いいたします!

専門家に質問してみよう