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

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

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

Re[2]: 数字だけの入力制限について(コンボボックス)


(過去ログ 56 を表示中)

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

■31715 / inTopicNo.1)  数字だけの入力制限について(コンボボックス)
  
□投稿者/ ひろみ (3回)-(2009/01/27(Tue) 22:52:06)

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

以前、テキストボックスに数字のみ許可するという機能を実現するために質問させていただきましたが
同様の機能をコンボボックスに実現する事が出来ずに投稿させていただきました。

こちらで行った方法としては、VB.NETのサンプル(テキストボックス−数字または一部の文字しか入力できないようにする)
http://jeanne.wankuma.com/tips/vb.net/textbox/permitchars.html
上記のサンプルコードを参考に以下の2行を修正して、0 〜 5の数字のみ入力を許可するコンボボックスが出来る事を想定しましたが、何も入力制限がかかっていませんでした。

申し訳ありませんが、コンボボックスで数字のみ許可する入力制限をもうけたカスタムコントロールの作成方法を教えていただけないでしょうか。


・以下が修正を行った箇所

Public Class MyTextBox : Inherits System.Windows.Forms.TextBox
↓
Public Class MyComboBox : Inherits System.Windows.Forms.ComboBox


Me.MyTextBox1.PermitChars = New Char() {"0"c, "1"c, "2"c, "3"c, "4"c, "5"c};
↓
Me.MyComboBox1.PermitChars = New Char() {"0"c, "1"c, "2"c, "3"c, "4"c, "5"c};

引用返信 編集キー/
■31716 / inTopicNo.2)  Re[1]: 数字だけの入力制限について(コンボボックス)
□投稿者/ あ (40回)-(2009/01/27(Tue) 23:30:11)
No31715 (ひろみ さん) に返信
> 申し訳ありませんが、コンボボックスで数字のみ許可する入力制限をもうけたカスタムコントロールの作成方法を教えていただけないでしょうか。
前回のテキストボックスと同じ方法では無理です。
コンボボックスは複数のコントロールが合わさって出来ています。
EditBox + ListBox + Button(?)

なので、コンボボックスのWndProcをオーバーライドしても、WM_CHARやWM_PASTEはEditBoxで発生しているのため捕まえられません。
EditBox部分をサブクラス化してうにうにすれば可能みたいですけど、この辺は理解しないで使うと色々マズそうなのでお勧めしません。

素直にTextChangedイベントとかで判定するのが良いと思います。


[蛇足]
志村ー後ろ後ろー
> Me.MyTextBox1.PermitChars = New Char() {"0"c, "1"c, "2"c, "3"c, "4"c, "5"c};
> ↓
> Me.MyComboBox1.PermitChars = New Char() {"0"c, "1"c, "2"c, "3"c, "4"c, "5"c};

#あ、サンプルが元々そうなってるんだ。
引用返信 編集キー/
■31793 / inTopicNo.3)  Re[2]: 数字だけの入力制限について(コンボボックス)
□投稿者/ あ (42回)-(2009/01/28(Wed) 18:36:01)
http://d.hatena.ne.jp/busaikuro/20081209#c1233074378

No31716 (あ さん) に返信
> ■No31715 (ひろみ さん) に返信
>>申し訳ありませんが、コンボボックスで数字のみ許可する入力制限をもうけたカスタムコントロールの作成方法を教えていただけないでしょうか。
> 前回のテキストボックスと同じ方法では無理です。
> コンボボックスは複数のコントロールが合わさって出来ています。
> EditBox + ListBox + Button(?)
>
> なので、コンボボックスのWndProcをオーバーライドしても、WM_CHARやWM_PASTEはEditBoxで発生しているのため捕まえられません。
> EditBox部分をサブクラス化してうにうにすれば可能みたいですけど、この辺は理解しないで使うと色々マズそうなのでお勧めしません。
>
> 素直にTextChangedイベントとかで判定するのが良いと思います。
>
>
> [蛇足]
> 志村ー後ろ後ろー
>>Me.MyTextBox1.PermitChars = New Char() {"0"c, "1"c, "2"c, "3"c, "4"c, "5"c};
>>↓
>>Me.MyComboBox1.PermitChars = New Char() {"0"c, "1"c, "2"c, "3"c, "4"c, "5"c};
>
> #あ、サンプルが元々そうなってるんだ。
解決済み
引用返信 編集キー/
■31797 / inTopicNo.4)  Re[3]: 数字だけの入力制限について(コンボボックス)
□投稿者/ あ (43回)-(2009/01/28(Wed) 21:22:43)
誰かは知らないけど、スレ主でもないのに勝手に解決チェックしちゃダメだよん。
引用返信 編集キー/
■31798 / inTopicNo.5)  Re[3]: 数字だけの入力制限について(コンボボックス)
□投稿者/ やじゅ (917回)-(2009/01/28(Wed) 23:24:07)
やじゅ さんの Web サイト
> http://d.hatena.ne.jp/busaikuro/20081209#c1233074378
>

駄文です、すみません。
@IT会議室でもそうだけど、そこのサイトに書かれたスレッドを
何故かリンクしている人がいるんだけど・・・、何のため?
しかも、毎回会員登録した上で、すぐに退会してるし。
なんだかなー。
引用返信 編集キー/
■31803 / inTopicNo.6)  Re[2]: 数字だけの入力制限について(コンボボックス)
□投稿者/ ひろみ (5回)-(2009/01/29(Thu) 01:14:42)
No31716 (あ さん) に返信

> 素直にTextChangedイベントとかで判定するのが良いと思います。

ありがとうございます。今の私では、実現するのが難しいようなので、
上記のように対応したいと思います。
解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -