tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルテキストボックスでフォーカス移動ができない
記事No5468
投稿日: 2007/05/11(Fri) 19:39
投稿者花ちゃん
テキストボックスで入力時は、左揃え、 入力後は、右揃え にしたくて
下記コードを試したところ、TAB キーでのフォーカス移動ができなくなります。
Leave イベントの変りにLostFocus イベントを使用するとTAB キーでのフォーカス
移動ができるようになるのですが、マウスでテキストボックスをクリックすると
データが消えてしまいます。
因みに、同様の事をVB6.0で行った場合は、問題なく動作します。
何かご存知でしたら、ご教示の程お願いします。

Private Sub TextBox1_Enter(ByVal sender As Object, _
                           ByVal e As System.EventArgs) Handles TextBox1.Enter
   TextBox1.TextAlign = HorizontalAlignment.Left
End Sub
Private Sub TextBox1_Leave(ByVal sender As Object, _
                           ByVal e As System.EventArgs) Handles TextBox1.Leave
   TextBox1.TextAlign = HorizontalAlignment.Right
End Sub

[ツリー表示へ]
タイトルRe: テキストボックスでフォーカス移動ができない
記事No5469
投稿日: 2007/05/11(Fri) 20:48
投稿者魔界の仮面弁士
Trace.WriteLine(TextBox1.Handle)
TextBox1.TextAlign = HorizontalAlignment.Left
Trace.WriteLine(TextBox1.Handle)

を実行してみると、ウィンドウ ハンドルが変更されていますね。
フォーカス制御の最中に行うべき処理では無いかと。VB6であっても。


> 因みに、同様の事をVB6.0で行った場合は、問題なく動作します。
実は、環境によっては動作しないという罠。

[ツリー表示へ]
タイトルRe^2: テキストボックスでフォーカス移動ができない
記事No5470
投稿日: 2007/05/11(Fri) 21:05
投稿者花ちゃん
> を実行してみると、ウィンドウ ハンドルが変更されていますね。
> フォーカス制御の最中に行うべき処理では無いかと。VB6であっても。

要望があって何とか出来ないものかと今日一日もがいていたのですが、あきらめます。

有難うございました。

[ツリー表示へ]
タイトルRe^3: テキストボックスでフォーカス移動ができない
記事No5477
投稿日: 2007/05/14(Mon) 09:24
投稿者y4yama
こんにちは
そういうものなのかぁ〜と確認のためにやっていたら、たまたまうまく実現しましたので載せておきます(VB2005)

Private Sub TextBox1_Enter(ByVal sender As Object, _
                               ByVal e As System.EventArgs) Handles TextBox1.Enter
        TextBox1.TextAlign = HorizontalAlignment.Left
End Sub

Private Sub TextBox1_Leave(ByVal sender As Object, _
                               ByVal e As System.EventArgs) Handles TextBox1.Leave
        TextBox1.TextAlign = HorizontalAlignment.Right  '*A*
        Me.SelectNextControl(TextBox1, True, True, False, True) '*B*
End Sub
AとBは逆でもいいようです。 ・・勉強させていただきました・・

[ツリー表示へ]
タイトルRe^4: テキストボックスでフォーカス移動ができない
記事No5480
投稿日: 2007/05/14(Mon) 13:50
投稿者花ちゃん
ありがとうございます。

個々のTextBox のイベントに書いてやれば、うまく動作するようですね。

ユーザコントロールに全て実装しようとするとやはり、TAB キーが利きませんでした。

[ツリー表示へ]