C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: VB.NETのテキストボックス内でAlt+Enterで改行


(過去ログ 97 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■57728 / inTopicNo.1)  VB.NETのテキストボックス内でAlt+Enterで改行
  
□投稿者/ 猫のジョンくん (1回)-(2011/03/10(Thu) 17:23:25)

分類:[VB.NET/VB2005 以降] 

2011/03/10(Thu) 17:24:07 編集(投稿者)
2011/03/10(Thu) 17:24:05 編集(投稿者)

Multilineのテキストボックスを使用しています。
コントロールのフォーカス移動をEnterで全て統一させたいのですが、
そのMultilineのテキストボックスだけ、Enterで改行されてしまうため、
フォーカス移動はTabキーを使うことになってしまいます。
テキストボックス内の改行をAlt+Enterにしたいのですが、
できますでしょうか。
よろしくお願いいたします。
引用返信 編集キー/
■57729 / inTopicNo.2)  Re[1]: VB.NETのテキストボックス内でAlt+Enterで改行
□投稿者/ じゃんぬねっと (50回)-(2011/03/10(Thu) 17:44:32)
じゃんぬねっと さんの Web サイト
No57728 (猫のジョンくん さん) に返信
> 2011/03/10(Thu) 17:24:07 編集(投稿者)
> 2011/03/10(Thu) 17:24:05 編集(投稿者)
>
> Multilineのテキストボックスを使用しています。
> コントロールのフォーカス移動をEnterで全て統一させたいのですが、
> そのMultilineのテキストボックスだけ、Enterで改行されてしまうため、
> フォーカス移動はTabキーを使うことになってしまいます。
> テキストボックス内の改行をAlt+Enterにしたいのですが、
> できますでしょうか。
> よろしくお願いいたします。

どこでキーを補足しているかによります。
まあ、KeyEventArgs のイベント引数があるようなら、このような質問はされないと思いますので、KeyData しかないメソッドなのだと勝手に想像しての回答になります。

'Enter じゃないなら (・∀・) カエレ!!
If (keyData And Keys.KeyCode) <> Keys.Enter Then
  Return
End If

If (keyData And Keys.Alt) = Keys.Alt Then
  '改行でおk
Else
  'フォーカス遷移でおk
End If

流れとしてはこんな感じでしょう。
引用返信 編集キー/
■57731 / inTopicNo.3)  Re[1]: VB.NETのテキストボックス内でAlt+Enterで改行
□投稿者/ shu (507回)-(2011/03/10(Thu) 18:11:24)
No57728 (猫のジョンくん さん) に返信
FormのKeyPreviewをTrueにしてFormのKeyDownで判定、KeyPressでもHandled=trueにする。
でやればTextBoxのEnterキーより先に判断できますよ。
引用返信 編集キー/
■57743 / inTopicNo.4)  Re[2]: VB.NETのテキストボックス内でAlt+Enterで改行
□投稿者/ 猫のジョンくん (2回)-(2011/03/11(Fri) 14:13:13)
じゃんぬねっとさん、shuさん、ご指導ありがとうございました。
会社の先輩に手伝ってもらい、お二人の回答を参考に、解決できました。(甘ちゃんですみません^_^;)


If e.Alt = True Then
sender.ActiveControl.SelectedText = vbCrLf
Else
'改行させない
e.Handled = True
'フォーカス移動する
End If
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -