出産前後の痔にはご注意!

VB.net初心者です
とある登録画面において、テキストボックスに半角文字、半角記号、半角スペースが含まれた状態で登録ボタンを押下された場合、入力エラーとする判定を実現させようとしています。

その場合の判定条件をどうすればよいのか調べてもわかりません
どなたかアドバイスをいただけると助かります、よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

先頭文字から一文字ずつ取り出し文字コードから半角か全角かをチェックする

    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QVB2005でコンボボックスのデフォルト表示したいのですが。。。

いつもお世話になります。
VB2005で初歩的な質問をさせていただきます。
入力画面を作っててその中にコンボボックスがあります。
コレクションで区分1、区分2、区分3・・・と書いているのですが、画面を表示させたときに選択する前に「区分1」がデフォルトで表示させたいのですがどのように記述したらよいのでしょうか。
よろしくお願いいたします。

Aベストアンサー

こんばんは
コンボボックスの先頭の項目(Itemsプロパティ)を表示させたいのなら
フォームのロードイベントに
 ComboBox1.SelectedIndex = 0
でいいのではないでしょうか

QVB.NET2003 テキストボックスに半角英数字以外入力させない

お世話になります。

初めてコーディングを行っておりますが、
文字制御についてわからないのでご享受ください。

IMEの設定 Alphaになっているテキストボックスがあります。

こちらに、直接入力や、貼り付けなどで、
全角文字、半角カナが入力されないようにするにはどうしたらよろしいでしょうか?

よろしくお願いします。

Aベストアンサー

ImeModeはOffの方がいいように思います

キー入力に関しては
TextBoxのKeyDownイベントで
if e.KeyCode = Keys.ProcessKey then
  e.Handled = true
  TextBox1.ImeMode = ImeMode.Off
else if e.Keycode = Key.Insert then
  ' キーボードによる貼り付け操作
  if e.shift then
    e.Handled = true
  end if
End if
といった具合で処理出来そうです

マウスの右クリックのコンテキストメニューの対策は
ContextMenuをFormに貼り付けてメニュー項目は何も設定しません
Form_Loadイベントなどで
TextBox1.ContextMenu = ContextMenu1
といった具合に設定します …

QDataGridViewで指定したセルの値を取得

こんにちは。

VB2008のDataGridViewで指定したセルの値を取得をする方法がわかりません。
どなたか教えてください。

Aベストアンサー

こんばんは.

 Dim Data As String
 Data = Me.DataGridView(0, 2).Value
 MsgBox(Data)

みたいな感じで取れないですかね???

QComboBoxの初期表示値

当方、VB.NETでwindowsMoblie5.0の開発をしております。

そこでComboBoxを使うのですが起動した際の初期表示の値を決めるにはどうすれば良いのですか?
初歩的な質問で申し訳ありませんがご教授のほどよろしくお願い申し上げます。

Aベストアンサー

> そこでComboBoxを使うのですが起動した際の初期表示の値を決める
> にはどうすれば良いのですか?
これを決めるのは『あなた』ですが ・・・

設定したItemsコレクションの中から選択したいのであれば
SelectedIndexにItemsコレクションの項目のインデックス番号を設定します

『選択してください』Itemsコレクションと無関係な文字列を表示してほしいならTextプロパティでしょう
ただしComboBoxStyleがDropDownList以外の場合に限ります

Q他のフォームから別のフォームのサブルーチンを呼び出す

例えばフォームAからフォームBのCommand1_clickというサブルーチンを呼び出そうとすればどのようにすればいいんでしょうか?

私は

Call FormB!Command_click

とフォームAに書きましたがうまくいきませんでした

Aベストアンサー

Command1のClickイベントプロシージャの

Private Sub Command1_Click()
'(・・処理・・)
End sub



Public Sub Command1_Click()
'(・・処理・・)
End sub

に書き換えて下さい(「Private」→「Public」)。
こうすることにより、他のフォームから呼ぶことが可能になります。
ただしこのやり方は奨励しません(※後述)

また、呼び出し方も間違ってます。

Call FormB!Command_click

ではなく、

Call FormB.Command_click

として下さい(「!」→「.」)。

※自動生成するイベントプロシージャの構文を直接いじるのはあまり奨励しません(特に問題は発生しませんが)。
直接イベントプロシージャを呼ぶのではなく、下記のようにしてみてはいかがでしょう。

※下記をFormBに記述

Private Sub Command1_Click()
Call subCommand1Click
End sub

Public Sub subCommand1Click()
'(・・処理・・)
End sub

FormAではこのように呼ぶ
Call FormB.subCommand1Click

Command1のClickイベントプロシージャの

Private Sub Command1_Click()
'(・・処理・・)
End sub



Public Sub Command1_Click()
'(・・処理・・)
End sub

に書き換えて下さい(「Private」→「Public」)。
こうすることにより、他のフォームから呼ぶことが可能になります。
ただしこのやり方は奨励しません(※後述)

また、呼び出し方も間違ってます。

Call FormB!Command_click

ではなく、

Call FormB.Command_click

として下さい(「!」→「.」)。

※自動生成...続きを読む

Qテキストボックスの入力制限

 VB6の画面入力でテキストボックスにフォーカスが移った際、半角カナや全角漢字、半角アルファベット大文字と云ったキーボードからの入力を制御したい(OSはWinXp/FEPはIME2002を使用)のですが、良い方法が有れば教えてください。

Aベストアンサー

入力を制御したいだけであれば、
テキストボックスのプロパティ「IMEMode」で出来ます

更に入力制限をかけたいのであれば、
マスク エディット (MaskEdBox) コントロールを使用する

#1さんの回答はテキストボックスにて入力制限を行うですね

QTextBoxに半角数字のみの入力しかできないようにしたい

タイトルどおりです。
フォームに貼り付けた、TextBoxに、半角数字のみしか入力できないようにしたいです。
000000~999999までのコード(数字)を入力させるようにするわけですが、そのままだと半角英数も全角も入力できてしまいます。

GrapeCity社製のカスタムコントロール「InputMan」の“Number”を用いると簡単なのですが、これだとカーソルがボックス内の右端にきて、一の位から入力が始まってしまいます。
数字は、ボックス内の左側から入力されていくようにしたいのですが、“Number”だとなんか出来なさそう・・・?
(“Number”で左側から入力できるならそれがいいのですが)

そこで、TextBoxを使うことにしたのですが、TextBoxだと、半角数字のみしか入力できないような制限がかけるのかが、わかりません。

もし、お分かりの方がいらっしゃいましたら、ご教授下さいませ。

Aベストアンサー

コピペですみません。
VB6だと、

Private Sub TextBox_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case vbKeyBack, Asc("0") To Asc("9"), Asc("-"), Asc(".")
Case &H1 ' Ctrl + A
TextBox.SelStart = 0
TextBox.SelLength = Len(TextBox.Text)
Case &H3 ' Ctrl + C
Case &H16 ' Ctrl + V
Case &H18 ' Ctrl + X
Case &H1A ' Ctrl + Z
Case Else
KeyAscii = 0
End Select
End Sub

で、いかがでしょうか。

コピペですみません。
VB6だと、

Private Sub TextBox_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case vbKeyBack, Asc("0") To Asc("9"), Asc("-"), Asc(".")
Case &H1 ' Ctrl + A
TextBox.SelStart = 0
TextBox.SelLength = Len(TextBox.Text)
Case &H3 ' Ctrl + C
Case &H16 ...続きを読む

Q【VB】コンボボックスにデータベースから取り出した値を入れたい

VB2005です。

表題の通りですがやり方がよくわかりません。
データベースに接続し、
SQLで重複しない値を取り出すところまではできています。

SQL=SELECT DISTINCT FieldName FROM TableName

VB6の時はこんなソースでした
Do Until rs.EOF
   Combo1.AddItem.Fields("FieldName")
   rs.MoveNext
Loop

VB2005ではどう書くのでしょう?
よろしくご教授ください。

Aベストアンサー

DataReaderを使用したサンプルです
※DBMSが記述されていないので、接続文字列はアクセスの場合です
※テキスト書きなので試験していません
※DataSetを使用する方法もありますが、コンボボックスに表示する程度ならDataReaderで大丈夫でしょう
※VB2005ならば、TableAdapterという便利なクラスがあるそうです
※VisualStudio2005 まださわってません orz

  Dim dbFilePath As String = "C:\testdb.mdb"
  Dim connectionString As String = String.Format("Provider=Microsoft.Jet.OLEDB.4.0; Data Source={0}", dbFilePath)
  Dim sql As String = "SELECT DISTINCT FieldName FROM TableName"
  Dim conn As New OleDbConnection(connectionString)
  Dim query As New OleDbCommand(sql, conn)

  Try
    conn.Open()
    Dim reader As OleDbDataReader = query.ExecuteReader()
    While (reader.Read())
      Me.ComboBox1.Items.Add(reader.Item("FieldName"))
    End While
    reader.Close()
  Catch ex As Exception
    MessageBox.Show(ex.Message)
  Finally
    conn.Close()
  End Try

DataReaderを使用したサンプルです
※DBMSが記述されていないので、接続文字列はアクセスの場合です
※テキスト書きなので試験していません
※DataSetを使用する方法もありますが、コンボボックスに表示する程度ならDataReaderで大丈夫でしょう
※VB2005ならば、TableAdapterという便利なクラスがあるそうです
※VisualStudio2005 まださわってません orz

  Dim dbFilePath As String = "C:\testdb.mdb"
  Dim connectionString As String = String.Format("Provider=Microsoft.Jet.OLEDB.4.0; Data Sourc...続きを読む

QVBでグローバル変数を宣言するには

VB初心者ですが。クイズゲームのようなものを作成したいと考えてます。
Private Sub ~ End Sub の中で宣言した変数って他のところに呼び出したり(戻り値として渡す)出来るのでしょうか?
どこでも、いつでも呼び足せるグローバル変数の宣言とはどのようにやるのか、具体的に教えていただけないでしょうか?

Aベストアンサー

>Public a as Integerのように宣言して、初期化するにはどのように記述を行えばよいですか?

>Public a As Boolean = 0
のように記したら”コンパイルエラー”と出ました。

Booleanって整数値取れたかなと思いつつ。
Sub~End Sub内でa = 0を代入したりしてください

扱おうと言うことがあるかどうか疑問だけど

Public Const a As Integer = 10 'グローバルな定数の宣言

QVBAのTextBoxに半角数字のみ入力したい

VBAでTextBox2には半角数字のみしか入力できないように制御したいのですが、どうしたらよいのでしょうか。

TextBoxのプロパティでIMEModeを「8-fmIMEModeAlpha」というのにしたのですが、半角英字も入力できてしまいます。

どなたかよい方法をご教授ください。

Aベストアンサー

#3 です。

失礼。#3 だと Tab と Enter まで入力できないので、以下に差し替えます。

  blnFlag = ((KeyCode >= 48) * (KeyCode <= 57)) _
      + ((KeyCode >= 96) * (KeyCode <= 105)) _
      + (KeyCode = 8) + (KeyCode = 13) + (KeyCode = 9)

> IMEModeを「8-fmIMEModeAlpha」

これだと入力モードの変更が可能なので、3-fmIMEModeDisable にしといた方が
良いかと思います。


人気Q&Aランキング