Thread View: fj.lang.visualbasic
11 messages
11 total messages
Started by Kuniyoshi Mohri
Wed, 25 Feb 1998 00:00
標準のコンボボックスでの入力文字数制限に付いて
Author: Kuniyoshi Mohri
Date: Wed, 25 Feb 1998 00:00
Date: Wed, 25 Feb 1998 00:00
11 lines
1132 bytes
1132 bytes
こん○○は!モーリ@ITCシステムです。
VB5の標準のコントロールのコンボボックスで、
.Styleが0(ドロップダウンコンボ)のとき、入力する文字数を制限するには
どうしたらよろしいのでしょうか?
どなたかご存知ではないですか?
よいお知恵をお持ちの方、よろしくお願い申し上げます。
*************************************************
毛 利 邦 是 E-mail : mouri@itc-system.co.jp
*************************************************
Re: 標準のコンボボックスでの入力文字数制限に付いて
Author: Sato Masahiro
Date: Wed, 25 Feb 1998 00:00
Date: Wed, 25 Feb 1998 00:00
31 lines
1463 bytes
1463 bytes
In article <6d0k75$r2i$1@nn-os001.ocn.ad.jp>, Kuniyoshi Mohri wrote:
>VB5の標準のコントロールのコンボボックスで、
>.Styleが0(ドロップダウンコンボ)のとき、入力する文字数を制限するには
>どうしたらよろしいのでしょうか?
面白そうなので、ちょっと考えてみました。
Private Sub Combo1_KeyPress(KeyAscii As Integer)
Const MAXLEN As Integer = 10
Dim InputLen As Integer
Select Case KeyAscii
Case 22: InputLen = Len(Clipboard.GetText())
Case 0 To 31: InputLen = 0
Case Else: InputLen = 1
End Select
If Len(Combo1.Text) - Combo1.SelLength + InputLen > MAXLEN Then
KeyAscii = 0
End If
End Sub
ぱっと思い付いたコードなので、やらなければいけない処理が
他にもあるかもしれません。
--
Computer Institute of Japan, Ltd.
佐藤正宏 masahiro@cij.co.jp
Re: 標準のコンボボックスでの入力文字数制限に付いて
Author: Takeshi Shigihara
Date: Wed, 25 Feb 1998 00:00
Date: Wed, 25 Feb 1998 00:00
12 lines
1177 bytes
1177 bytes
Kuniyoshi Mohri wrote:
> VB5の標準のコントロールのコンボボックスで、
> .Styleが0(ドロップダウンコンボ)のとき、入力する文字数を制限するには
> どうしたらよろしいのでしょうか?
APIなら、 CB_LIMITTEXT というメッセージがあるのですが、
こっちはVBを知らないもんで、VBでは、どう使うのか分かりません(^^;
----- Takeshi Shigihara
Office cygnus@masternet.or.jp
Home cygnus@po.jah.ne.jp -----
Re: 標準のコンボボックスでの入力文字数制限に付いて
Author: Kuniyoshi Mohri
Date: Wed, 25 Feb 1998 00:00
Date: Wed, 25 Feb 1998 00:00
11 lines
1132 bytes
1132 bytes
こん○○は、モーリ@ITCシステムです。
佐藤正宏 さん、RES有り難う御座います。
大変参考になりました。
これをもとにたとえば半角40文字全角20文字の入力制限に
発展させたいと思います。
*************************************************
毛 利 邦 是 E-mail : mouri@itc-system.co.jp
*************************************************
Re: 標準のコンボボックスでの入力文字数制限に付いて
Author: AKIYA Saburou
Date: Wed, 25 Feb 1998 00:00
Date: Wed, 25 Feb 1998 00:00
17 lines
1228 bytes
1228 bytes
穐谷(あきや)です。 Takeshi Shigihara wrote in article <34F3F800.57516BB0@masternet.or.jp>... > > VB5の標準のコントロールのコンボボックスで、 > > .Styleが0(ドロップダウンコンボ)のとき、入力する文字数を > > 制限するにはどうしたらよろしいのでしょうか? > APIなら、 CB_LIMITTEXT というメッセージがあるのですが、 > こっちはVBを知らないもんで、VBでは、どう使うのか分かりません(^^; それをAPI関数のSendMessageで送りましょう。 ------------------------------------------------------------ 差出人: 穐谷 三郎 E-Mail: akiya@cmpk.or.jp
Re: 標準のコンボボックスでの入力文字数制限に付いて
Author: Sato Masahiro
Date: Wed, 25 Feb 1998 00:00
Date: Wed, 25 Feb 1998 00:00
21 lines
1337 bytes
1337 bytes
In article <6d0tk4$1l9$1@nn-os001.ocn.ad.jp>, Kuniyoshi Mohri wrote: >これをもとにたとえば半角40文字全角20文字の入力制限に >発展させたいと思います。 ごめんなさい、こちらについては Shigihara さんの In article <34F3F800.57516BB0@masternet.or.jp>, Takeshi Shigihara wrote: >APIなら、 CB_LIMITTEXT というメッセージがあるのですが、 を元に、 SendMessage Combo1.hwnd, CB_LIMITTEXT, 40, 0 などととしてみたところ、あっさりできてしまいました。 簡単ですし、特に異常が起こらないようであるならば、 こちらの方法をお勧め致します。 -- Computer Institute of Japan, Ltd. 佐藤正宏 masahiro@cij.co.jp
Re: 標準のコンボボックスでの入力文字数制限に付いて
Author: Yuji Tagawa
Date: Wed, 25 Feb 1998 00:00
Date: Wed, 25 Feb 1998 00:00
24 lines
1614 bytes
1614 bytes
田川@イントラネットシステムです。
Kuniyoshi Mohri wrote in message <6d0k75$r2i$1@nn-os001.ocn.ad.jp>...
>こん○○は!モーリ@ITCシステムです。
>VB5の標準のコントロールのコンボボックスで、
>.Styleが0(ドロップダウンコンボ)のとき、入力する文字数を制限するに
は
>どうしたらよろしいのでしょうか?
標準ではないのですが、参考までに
VB Magazine の付録のCDに入っている Excombo.OCX という OCX を
使うと、LimitText というプロパティのついたコンボボックスを使える
ようになります。各項目のフォントや色も変更できます。
\1000 のシェアウェアです。
全角文字は2文字として数えているようです。(バイト数を返している?)
----
〒105 港区芝大門2-5-5 住友芝大門ビル9F
イントラネットシステム株式会社 IT部
田川 勇治 (Email: yujit@intranet.co.jp)
(TEL: 03-5403-2688(Ext.537) FAX: 03-5403-0940)
Re: 標準のコンボボックスでの入力文字数制限に付いて
Author: よろずや kin-chan
Date: Wed, 25 Feb 1998 00:00
Date: Wed, 25 Feb 1998 00:00
18 lines
1323 bytes
1323 bytes
こんにちは よろずや kin-chan です Kuniyoshi Mohri <na201599@fsinet.or.jp> wrote in article <6d0k75$r2i$1@nn-os001.ocn.ad.jp>... > こん○○は!モーリ@ITCシステムです。 > VB5の標準のコントロールのコンボボックスで、 > .Styleが0(ドロップダウンコンボ)のとき、入力する文字数を制限するに は > どうしたらよろしいのでしょうか? KeyPressとかを使ってやってみようとしたことはありますが、右クリックで 貼り付けとかされたらどうもうまくないので、結局内部で処理するときに 左から必要文字数だけを使うという手で逃げました。 Unicode を考慮すると Left関数は使えず、自前で関数を作りました。:-) では
Re: 標準のコンボボックスでの入力文字数制限に付いて
Author: Kuniyoshi Mohri
Date: Thu, 26 Feb 1998 00:00
Date: Thu, 26 Feb 1998 00:00
11 lines
1098 bytes
1098 bytes
こん○○は!モーリ@ITCシステムです。
佐藤正宏さん、Takeshi Shigiharaさん、穐谷(あきや)さん、
田川 勇治さん、よろずや kin-chanさん
どうも有り難う御座いました。
大変勉強になりました。
*************************************************
毛 利 邦 是 E-mail : mouri@itc-system.co.jp
*************************************************
Re: 標準のコンボボックスでの入力文字数制限に付いて
Author: kamayan
Date: Thu, 26 Feb 1998 00:00
Date: Thu, 26 Feb 1998 00:00
26 lines
1340 bytes
1340 bytes
>Private Sub Combo1_KeyPress(KeyAscii As Integer)
>
・・・省略・・・
>
>End Sub
>
Windows95/NT4.0では、コンボボックスの右クリックメニューに、
「貼り付け」もあるので、KeyPressイベントが発生しません。そん
なわけで、Changeイベントを利用するのが良いと思います。
Private Sub Combo1_Change()
Dim str1 As String
Dim a As Long
str1 = Combo1.Text
a = LenB(StrConv(str1, vbFromUnicode))
If a > 10 Then ' 10バイト(S-JIS)に制限する
' ここでまたChangeイベントが発生するところがミソ
Combo1.Text = Left(str1, Len(str1) - 1)
End If
End Sub
Re: 標準のコンボボックスでの入力文字数制限に付いて
Author: Sato Masahiro
Date: Fri, 27 Feb 1998 00:00
Date: Fri, 27 Feb 1998 00:00
21 lines
1454 bytes
1454 bytes
In article <6d2rls$3el$1@fu2.bekkoame.or.jp>, kamayan wrote: >Windows95/NT4.0では、コンボボックスの右クリックメニューに、 >「貼り付け」もあるので、KeyPressイベントが発生しません。そん >なわけで、Changeイベントを利用するのが良いと思います。 なるほど...。 > If a > 10 Then ' 10バイト(S-JIS)に制限する > ' ここでまたChangeイベントが発生するところがミソ > Combo1.Text = Left(str1, Len(str1) - 1) > End If ただ、このように Combo1.Text を変更する処理を記述して しまうと、CTRL+Z で元に戻すことができなくなりますよね? だとすると、ここはやはり CB_LIMITTEXT を送るのが簡単で 良さそうです。 -- Computer Institute of Japan, Ltd. 佐藤正宏 masahiro@cij.co.jp
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads