VBレスキュー(花ちゃん)
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ各掲示板

メニューへ戻ります。 コントロール共通関係のメニュー
1.配置済みのコントロールをコントロール配列にする
2.動的にコントロール配列を作成する
3.コントロールの背景を透明にする
4.既存のコントロールを継承した独自のコントロールを作成する方法 
5.簡単なユーザーコントロールの作成方法
6.既存のコントロールからクラスを派生させカスタムコントロールを作成する
7.
8. 
9. 
10. 
11.
12.
 . 
20.その他、当サイト内に掲載のコントロール共通に関するサンプル


5.簡単なユーザーコントロールの作成方法(14_Ctr_05) (旧、SampleNo.138)
1.簡単なユーザーコントロールの作成方法
2.
3.
4.
5.
6.

 下記プログラムコードに関する補足・注意事項 
動作確認:Windows 8.1 (Windows 7) / VB2013 (VB2010) / Framework 4.5.1 / 対象の CPU:x86
Option :[Compare Text] [Explicit On] [Infer On] [Strict On]
Imports :追加なし
参照設定:
追加なし
その他 :
    :
このサンプル等の内容を無断で転載、掲載、配布する事はお断りします。(私の修正・改訂・削除等が及ばなくなるので)
必要ならリンクをはるようにして下さい。(引用の場合は引用元のリンクを明記して下さい)
このページのトップへ移動します。 1.簡単なユーザーコントロールの作成方法
1.通常の Windows フォームアプリケーションの作成画面で、[プロジェクト]→[ユーザーコントロールの追加]→
  [ユーザーコントロール]を選択し、UserControl1.vb →PostalNoTextBox.vb に変更して[追加]をクリック

2.コードの表示で下記の部分を変更してください。
vb2005controlcommon05_1

3.変更すると下記の部分でエラーの波線が表示されるので、コメントにしておいて下さい。
vb2005controlcommon05_2

4.PostalNoTextBox.vb のコードの表示で表示される場面で下記のテストコードを記入して下さい。
Public Class PostalNoTextBox
  'イベントを処理するデリゲートを定義
  Public Delegate Sub CheckInputHandler(ByVal sender As Object, ByVal e As EventArgs)
    '不正な書式で入力された場合発生するイベントを定義
    Public Event CheckInput As CheckInputHandler
    '不正な書式があった時に発生するカスタムイベントを作成
    Public Sub cmTextBox_Validating(ByVal sender As Object,
            ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Validating
    Dim m As System.Text.RegularExpressions.Match = _
      System.Text.RegularExpressions.Regex.Match(Me.Text, "^\d{3}-\d{4}$")  '郵便番号
              ' "^\d{2,6}[\-]?\d{0,4}[\-]?\d{4}$"    '電話番号
              ' "^[\w\.\-]+@[\w\-]+\.[\w\.\-]+$"     'メールアドレス
              ' "^(0|([1-9](\d{0,2})((,\d{3}){0,2})))$" '3桁区切り
    If m.Success = False Then
      'イベントを発生
      RaiseEvent CheckInput(Me, New EventArgs)
    End If
  End Sub
End Class

5.上記コードを記入してエラー等が表示されなければ、一旦ビルドして下さい。
  問題がなければ、ツールボックスの上の方に、PostalNoTextBox コントロールが作成されているはずですから
  それを Form に配置して下さい。

6.配置したら、PostalNoTextBox1_CheckInput というイベントが作成されているのでそこに下記コードを書いて
  入力テストをしてみて下さい。
Private Sub PostalNoTextBox1_CheckInput(sender As Object, e As EventArgs) Handles PostalNoTextBox1.CheckInput
'作成したイベント(不正な書式があった時に発生するイベント)
  MessageBox.Show("郵便番号の書式が不正です。")
  PostalNoTextBox1.Focus()
End Sub


おことわり
 上記は、郵便番号入力用の TextBox のを作成するのが目的ではありませんので誤解なきように願います。
4.既存のコントロールを継承した独自のコントロールを作成する方法 もほぼ同様の方法で作成しておりますので参考にして下さい
又、MSDN のユーザーコントロールの作成 http://msdn.microsoft.com/ja-jp/library/cc437705(v=vs.71).aspx や
WEB 上で[ユーザーコントロール 作成]をキーに検索すれば、色々サンプルや作成方法の解説の記載がみつかります。

このページのトップへ移動します。 2.


このページのトップへ移動します。 3.


このページのトップへ移動します。 4.


このページのトップへ移動します。 5. 



このページのトップへ移動します。 6.


このページのトップへ移動します。 検索キーワード及びサンプルコードの別名(機能名)
コントロールの背景を透過にする  透明な背景色  背景色を透明




このページのトップへ移動します。