- - PR -
テキストボックスの入力規則について
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-11-18 16:50
Windowsフォームでデータ入力させるプログラムを書いています。
項目毎に入力規則をつけようと考えています。 はじめに、何もデータが入力されず次の項目へ移ろうと した際に、警告メッセージを出して、フォーカスを該当項目へ とばすというのを作ろう思い次のように作ってみました。 まず、項目を格納するプロパティを次のようにしました Public Property field03() As Object Get Return m_field03 End Get Set(ByVal Value As Object) If Value = Nothing Then MessageBox.Show("名前を入力してください") m_field03 = "-----" Else m_field03 = Value End If End Set End Property 実際の処理で次のようにすると Private Sub TB_field03_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles TB_field03.Leave imp.field03 = TB_field03.Text End Sub 警告メッセージはでるのですがそれ以外何も書いていないので フォーカスは次の項目へいってしまいます。 このイベントをキャンセルすればとか考えて調べてみたのですが そういう方法とかを見つけることができませんでした 次に、考えてみたのは if imp.field03 = "-----" then TB_field03へフォーカスを移す命令 end if というのですが、ヘルプの探し方が悪いのか見つけることができません どなたかご教示いただけませんでしょうか? |
|
投稿日時: 2005-11-18 16:58
エラー検証は検証イベントで行いましょう。
Validating イベントです。 有効でない値が入力された場合は、 イベント引数である CancelEventArgs の Cancel プロパティを true に設定します。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |
|
投稿日時: 2005-11-20 08:10
じゃんぬねっとさん。レスありがとうございました。
遅くなりましたが、ようやく理解できました。 以下のようにしたところ思うとおり実行できました。 Public Property field03() As Object Get Return m_field03 End Get Set(ByVal Value As Object) If Value = Nothing Then MessageBox.Show("名称を入力してください") m_field03 = "-----" Else m_field03 = Value End If End Set End Property Private Sub TB_field03_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles TB_field03.Validating imp.field03 = TB_field03.Text If imp.field03 = "-----" Then e.Cancel = True End If |
1