フォーム1をロードしたときに、フォーム2を呼び出します。2つのフォームを呼び出すとき、フォーム1がメインのフォームで、フォーム2が呼び出されたフォームです。そのときに、フォーム1の操作を無効にし、フォーム2の操作を有効にするために、
Form1.Enabled=False
Form2.Enabled=True
を使いました。そのときにどうしてもフォーム2にフォーカスが移動しないのですが、どうしたらよろしいですか?

A 回答 (3件)

Form_ActivateまたはForm_Loadの最後に



Form2.Show vbModal

としては?
    • good
    • 0

・Form1のActiveイベントで呼び出す。


・Form1からではなく、モジュールから呼び出す。
・From2をダイアログ形式で呼び出す。

とか・・・
    • good
    • 0

Form2.SetFocus


を記述してみては?
    • good
    • 0

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

このQ&Aと関連する良く見られている質問

QMaskEdBox.Enable= False だと、BackColor が効きません

MaskEdBox の Enable を False にして、BackColor を設定すると、
BackColor が、有効になりませんでした。
解決方法を教えて下さい。

Aベストアンサー

VBのバージョンは何でしょうか?

VB6のSP3で単純に組んだプログラムでは再現しませんでした。
他の原因も考えられますのでフォームの様子や周辺のソースなど補足してください。

QVB.NETのDropDownListをReadOnlyにする方法またはEnable=Falseで字を黒くする方法

VB.NETで作成したWebページのDropDownListを変更させたくないのですが、Enable=Falseにすると文字の色が灰色になってしまって大変見にくいので、TextコントロールのReadOnlyのように、変更不可にする方法はあるのでしょうか?
おしえてください~

Aベストアンサー

> ”入力できないようにする”というのは、Enable=Falseと同じで、”現在選択されているものを他のに変更できなくする”という意味で書きました。

なるほどなるほど。

> Enable=Falseだと色が灰色になってしまいますので、どうやって
> ・Enable=Falseで黒くするのか?
> ・ReadOnlyに換わるものがあるのか?
> ということが聞きたかったのです。

となると CSS とかでも無理っぽいので、
あらかじめ ReadOnly なテキストボックスを非表示にしておき、DropDownList にロックを掛けたいタイミングで
・DropDownList を非表示にする。
・DropDownList で選択されている値を TextBox にセットする。
・TextBox を表示する
とすれば可能です。

これらの動作をクライアント側で行いたいのであれば JavaScript で記述すればいいです。
下記が参考になるかもしれません。
http://chaichan.web.infoseek.co.jp/qanda/qa6878.htm?06-08-06-13-39

> ”入力できないようにする”というのは、Enable=Falseと同じで、”現在選択されているものを他のに変更できなくする”という意味で書きました。

なるほどなるほど。

> Enable=Falseだと色が灰色になってしまいますので、どうやって
> ・Enable=Falseで黒くするのか?
> ・ReadOnlyに換わるものがあるのか?
> ということが聞きたかったのです。

となると CSS とかでも無理っぽいので、
あらかじめ ReadOnly なテキストボックスを非表示にしておき、DropDownList にロックを掛けたいタイミングで
・Dro...続きを読む

QEnabled=Falseのテキストボックスの文字の色

VB6です。
テキストボックスで、Enabled=Falseに設定されているものについては、基本的にグレーアウトで表示されると思いますが、そのままの設定で色だけを変更する方法はあるのでしょうか。

なければ、ないでいいのですが、もしあれば便利だと思いましたので、ご存知でしたら教えてください。

なお、テキストボックスではなく、ラベルを使いなさいというのはできません。

処理がめんどくさいので、すべてをコントロール配列にして一度ですべての処理をさせたいからです。

Aベストアンサー

お気に召すかわかりませんが、このような方法があります。

1.Enable=Falseを設定した後に
 「BackColor = &H80000005(通常のテキストボックスの背景色)」
を設定する。

※文字はグレーのままです。

2.「Enable=False」ではなく、「Locked = True」の設定をする。

※入力はできませんが、「右クリック→貼り付け」はできてしまいます。

いかがでしょうか?

Qform2 から form1に戻ったとき、form1のTextboxの内容を消したくないのですが

.NETのBasicでform1からform2に移行するため
Dim F2 As New Form2()
Me.Hide()
F2.Show()

この後、form1にもどるため
Dim F1 As New Form1()
F1.Show()
Me.Hide()
上記のように書くと、form1のTextboxの内容が消えてしまいますよね。

これを消さずにまたform1のTextboxの編集が続けられるようにしたいのですが、どうすればいいでしょうか

ただ単にform1を見えなくする方法が違うのでしょうか

初歩的な質問ですいません。

Aベストアンサー

Form1側を
Dim F2 As New Form2()
Dim ret As Integer
Me.Hide()
ret = Form.ShowDialog()
If ret = DialogResult.OK Then
Me.Show()
End If
としておいて
Form2側のクローズイベントで
Me.DialogResult = DialogResult.OK
という具合にする方法もありますよ。

Q[×]ボタン.Enabled = False は可能?

済みません,質問が二つあります。

1.メインフォームから,BorderStyle = 1 のダイアログフォームを Modeless で開くのですが,このフォームを右上の[×]ボタンで閉じさせたくありません。[×]ボタンをクリックしても凹まないようにし(Disabled にし),さらに表示も淡色にする方法があれば,教えていただきたく存じます。

2.テキストボックスに入力された文字列が,ファイル名として有効かどうかを簡単に判定する方法はありますか? つまり,ファイル名に「\/:,…」などが使われていたら NG,しかしパス名で使われている分には OK といった判定が簡単にできるのでしょうか?

どうかよろしくお願いいたします。

Aベストアンサー

こんにちはmaruru01です。
1.について
単に[×]で閉じないようにするなら、FormのUnLoadイベントでCancelをTrueにしてやればよいと思います。
2.について
サンプルを作ってみました。ついでにファイル名が存在するかどうかのチェックもつけました。
No.3の方が言っているように、Open For InputまたはOutputでファイルを開いてみて、エラー値で判断します。
pathNameにファイル名(フルパス)を入れて、今回の質問では、-1が返ったら、ファイル名としては無効(不正なファイル名)ということになります。
参考になれば幸いです。
では。


'ファイルの存在チェック及び、不正ファイル名チェック
Public Function NGfileName(ByVal pathName As String) As Integer

  Dim Num As Integer

  NGfileName = 0
  Err.Number = 0

  On Error Resume Next

  'inputモードでファイルの存在チェック
  Num = FreeFile
  Open pathName For Input As #Num
  If Err.Number = 0 Then
    NGfileName = 1 'ファイルが存在する
  End If
  Close #Num

  If NGfileName = 1 Then Exit Function
  Err.Clear

  'outputモードで不正ファイル名チェック
  Num = FreeFile
  Open pathName For Output As #Num
  If Err.Number <> 0 Then
    NGfileName = -1 'ファイル名が不正
  End If
  Close #Num

  If NGfileName = 0 Then Kill pathName
  Err.Clear

End Function

こんにちはmaruru01です。
1.について
単に[×]で閉じないようにするなら、FormのUnLoadイベントでCancelをTrueにしてやればよいと思います。
2.について
サンプルを作ってみました。ついでにファイル名が存在するかどうかのチェックもつけました。
No.3の方が言っているように、Open For InputまたはOutputでファイルを開いてみて、エラー値で判断します。
pathNameにファイル名(フルパス)を入れて、今回の質問では、-1が返ったら、ファイル名としては無効(不正なファイル名)ということになります。
参...続きを読む


このカテゴリの人気Q&Aランキング

おすすめ情報