[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2005/09/29(Thu) 16:10
投稿者名:allrivertak
Eメール:
URL :
タイトル:
TextBoxのCtrl+Aについて
こちらのサイトにはいつもお世話になっております。

TextBoxコントロールのショートカット処理(Ctrl+A)について
質問させて頂きます。

右クリックで現れるメニューの中には「すべて選択」が存在するのに、
Ctrl+AではTextBox中の文字列が選択されません。
プロパティ等の設定も見つからなかったのですが、
これは仕様なのでしょうか?
分かる方、どうか教えて下さい。

なお、当方の開発環境は、WinXP SP2 + VB6.0(SP6)です。

よろしくお願い致します。

投稿時間:2005/09/29(Thu) 17:28
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: TextBoxのCtrl+Aについて
> これは仕様なのでしょうか?

多分、そうでしょうね。

因みに、Microsoft Forms 2.0 Object Libray に含まれる TextBox は
Ctrl + A で選択できます。(お試し下さい)

投稿時間:2005/09/29(Thu) 17:50
投稿者名:allrivertak
Eメール:
URL :
タイトル:
Re^2: TextBoxのCtrl+Aについて
> > これは仕様なのでしょうか?
>
> 多分、そうでしょうね。

そうですか…。

>
> 因みに、Microsoft Forms 2.0 Object Libray に含まれる TextBox は
> Ctrl + A で選択できます。(お試し下さい)

情報ありがとうございます。
これから、こちらに乗り換えられるか、試してみようと思います。

どうもありがとうございました。

投稿時間:2005/09/29(Thu) 18:23
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^3: TextBoxのCtrl+Aについて
> これから、こちらに乗り換えられるか、試してみようと思います。

言い忘れましたが、そのコントロールは再配布ができなかったような(ライセンスの関係で)

投稿時間:2005/09/30(Fri) 11:12
投稿者名:allrivertak
Eメール:
URL :
タイトル:
Re^4: TextBoxのCtrl+Aについて
> > これから、こちらに乗り換えられるか、試してみようと思います。
>
> 言い忘れましたが、そのコントロールは再配布ができなかったような(ライセンスの関係で)

Microsfotのホームページ等では見つけられなかったのですが、
他のサイトでも再配布出来ないことが書かれていました。
(他にもIMEに問題が発生することなど・・・)

仕事で使う為、再配布出来ないのでは、あきらめようと思います。

また、じゃんぬねっとさんが提案してくれた方法で実現しようと思います。

いろいろと有難う御座いました。

投稿時間:2005/09/30(Fri) 09:31
投稿者名:じゃんぬねっと
Eメール:
URL :http://jeanne.wankuma.com
タイトル:
Re: TextBoxのCtrl+Aについて
蛇足ですが、[Ctrl] + [A] を読み取って、
SelStart と SelLength から全選択にすることはできますね。

投稿時間:2005/10/01(Sat) 07:44
投稿者名:Starfish
Eメール:
URL :
タイトル:
Re: TextBoxのCtrl+Aについて
 そのフォームにメニューがあって、「すべて選択」のメニューを作って
よいのなら、ショートカットにCtrl+Aを割り当てて、以下のコードで
実現できます。

Private Sub mnuEditSelectAll_Click()

    If TypeOf Me.ActiveControl Is TextBox Then
        Me.ActiveControl.SelStart = 0
        Me.ActiveControl.SelLength = Len(Me.ActiveControl.Text)
    End If

End Sub

投稿時間:2005/10/01(Sat) 08:55
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: TextBoxのCtrl+Aについて
オーソドックスにやるならこんな感じでしょうか?

Option Explicit

Private KeySelectAll As Boolean

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    KeySelectAll = False
    If KeyCode = vbKeyA And Shift = vbCtrlMask Then
        If TypeOf Me.ActiveControl Is TextBox Then
            Me.ActiveControl.SelStart = 0
            Me.ActiveControl.SelLength = Len(Me.ActiveControl.Text)
            KeySelectAll = True
        End If
    End If
End Sub

Private Sub Form_KeyPress(KeyAscii As Integer)
    If KeySelectAll Then
        KeyAscii = 0
    End If
End Sub

Private Sub Form_Load()
    Me.KeyPreview = True
End Sub

投稿時間:2005/10/03(Mon) 18:29
投稿者名:allrivertak
Eメール:
URL :
タイトル:
Re^2: TextBoxのCtrl+Aについて
> オーソドックスにやるならこんな感じでしょうか?
>
> Option Explicit
>
> Private KeySelectAll As Boolean
>
> Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
>     KeySelectAll = False
>     If KeyCode = vbKeyA And Shift = vbCtrlMask Then
>         If TypeOf Me.ActiveControl Is TextBox Then
>             Me.ActiveControl.SelStart = 0
>             Me.ActiveControl.SelLength = Len(Me.ActiveControl.Text)
>             KeySelectAll = True
>         End If
>     End If
> End Sub
>
> Private Sub Form_KeyPress(KeyAscii As Integer)
>     If KeySelectAll Then
>         KeyAscii = 0
>     End If
> End Sub
>
> Private Sub Form_Load()
>     Me.KeyPreview = True
> End Sub

詳しいサンプルまで示して頂き、ありがとうございます。
確かにこの方法だとすっきりしていいですね。
この方法でアプローチしてみようと思います。
みなさん、有難う御座いました。