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

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

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

Re[4]: テキストボックスで改行させなくするには?


(過去ログ 69 を表示中)

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

■40177 / inTopicNo.1)  テキストボックスで改行させなくするには?
  
□投稿者/ プリ太 (51回)-(2009/08/20(Thu) 22:07:35)

分類:[C#] 

プリ太です。
テキストボックスで改行させない方法について教えてください。

テキストボックスには100文字入力可能です。
そのため、テキストボックスのMultiline、WordWrapはTrueにしています。
ただ、改行させてくないため、AcceptsReturnはFalseにしています。

実行したところ、この設定でも改行されてしまったので調べたところ、AcceptsReturnを有効にするにはボタンが必要とありました。
不要なボタンを配置するのはイヤだったので、Enterキーを押されたら無効にすれば、と思い、
テキストボックスのKeyDownイベントで
if (e.KeyCode == Keys.Enter)
{
e.Handled = true;
}
としました。
実行してみると、Enterキーを押されたら"e.Handled = true;"を通るのですが、実際は改行されてしまいます。

他にEnterキーをブロックできる方法はないでしょうか?

環境はVS2005です。
宜しくお願いします。

引用返信 編集キー/
■40180 / inTopicNo.2)  Re[1]: テキストボックスで改行させなくするには?
□投稿者/ もりお (48回)-(2009/08/20(Thu) 22:57:18)
No40177 (プリ太 さん) に返信
> 他にEnterキーをブロックできる方法はないでしょうか?

キープレスなイベントを利用してみるのはいかがでしょうか。
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
    if (e.KeyChar == 13)
    {
        e.Handled = true;
    }
}

引用返信 編集キー/
■40181 / inTopicNo.3)  Re[2]: テキストボックスで改行させなくするには?
□投稿者/ プリ太 (52回)-(2009/08/20(Thu) 23:09:04)
もりお さん、ありがとうございます。

>>他にEnterキーをブロックできる方法はないでしょうか?
>
> キープレスなイベントを利用してみるのはいかがでしょうか。
> private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
> {
> if (e.KeyChar == 13)
> {
> e.Handled = true;
> }
> }

KeyPressに入れてみたところ、あっさりブロックできました。
ありがとうございます。

ただ、なんでKeyPressだとブロックできて、KeyDownだとダメなのかが分からないのですが、
何が違うのでしょうか?
引用返信 編集キー/
■40182 / inTopicNo.4)  Re[3]: テキストボックスで改行させなくするには?
□投稿者/ もりお (49回)-(2009/08/20(Thu) 23:16:10)
No40181 (プリ太 さん) に返信
> 何が違うのでしょうか?

イベントの型が違うです。
http://dobon.net/vb/dotnet/control/keyevent.html

これでも出来るみたいです。
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.Enter)
    {
        e.SuppressKeyPress = true;
    }
}

引用返信 編集キー/
■40183 / inTopicNo.5)  Re[3]: テキストボックスで改行させなくするには?
□投稿者/ Hongliang (452回)-(2009/08/20(Thu) 23:20:17)
使うプロパティが間違ってるからです。
KeyDown イベントの KeyEventArgs の場合、SuppressKeyPress プロパティを true にします。

あと、コピペによる改行の入力に気をつけてくださいね。
引用返信 編集キー/
■40190 / inTopicNo.6)  Re[4]: テキストボックスで改行させなくするには?
□投稿者/ プリ太 (53回)-(2009/08/20(Thu) 23:57:11)
もりお さん、Hongliangさん、ありがとうございます。

なるほど、使い方が違うのですね。
勉強になりました。ありがとうございます。
SuppressKeyPressなんて、知りませんでした・・・


> あと、コピペによる改行の入力に気をつけてくださいね。

あ、そうですね。
これから対処します。

ありがとうございました。
解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -