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

わんくま同盟

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

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


(過去ログ 56 を表示中)
■31702 / )  Re[1]: 置換の仕方について
□投稿者/ 魔界の仮面弁士 (971回)-(2009/01/27(Tue) 17:11:59)
No31700 (naoko さん) に返信
> txtBOXに入力された半角数値を自動的に全角に置換させたいのですが
> txt_KeyPressイベントにて処理しようとしてるのですが

(Vista や XP Tablet などで)「ペン入力」された場合、KeyPress は発生しませんのでご注意を。
また、マウスの右クリックでクリップボードから「貼り付け」した場合も発生しません。

> Dim d As String
> d = txt(1).Text
txt は、TextBox の「コントロール配列」なのでしょうか?


> KeyAscii = StrConv(d, vbUpperCase)
KeyPress イベントの引数を良く見てください。『KeyAscii As Integer』になっていますよね。
StrConv の結果は String 型なので、そのままでは Integer 型としては扱えません。

書くとすれば、
 Private Sub txt_KeyPress(Index As Integer, KeyAscii As Integer)
   KeyAscii = Asc(UCase(Chr(KeyAscii)))
 End Sub
のようになるでしょう。


> また、”’(シングルクォーテーション)”が入力された場合、’を削除させたいのですが
> それもうまくいきません。
『'』ではなく、
『’』を削除したいのですね?

であれば、こんな感じで。
 Private Sub txt_KeyPress(Index As Integer, KeyAscii As Integer)
   If KeyAscii = Asc("’") Then
     KeyAscii = 0
   End If
 End Sub


> どのような書き方が宜しいのでしょうか?
Change イベントや LostFocus イベントを併用した方が良いかも。
返信 編集キー/


管理者用

- Child Tree -