tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re: 実行時に選択決定されるForm上のPublic メソッド
投稿日: 2007/07/31(Tue) 13:10
投稿者るしぇ
『継承【inheritance】』についてはご理解いただけてますでしょうか?
Form2 および Form3 のコードは先頭のほうに
>    Inherits System.Windows.Forms.Form
と書かれていると思います。これにより、継承元である
System.Windows.Forms.Form クラスの ShowDialog メソッドが
コーディングなしで Form2 および Form3 で使えます。
また、
>    Dim fom As New Form
>    fom = Form2
>    fom = Form3
のように基底クラス(継承元)の変数に格納して操作できます。
このとき、fom を利用して呼び出せるのは System.Windows.Forms.Form
クラスのプロパティ・メソッドのみで、そのままでは Form2 および Form3
で定義された関数を呼ぶことはできません。

>    fom.Buttun_Click() 'ここができない
この場合、Buttun_Click() がコーディングされているのは
System.Windows.Forms.Form クラスではなく、Form2 クラスおよび
Form3 クラスです。当然、コンパイルできません。

解決法としては、
案1. Buttun_Click() がコーディングされた基底クラスを作って
Form2 および Form3 が継承する。

案2.共通のインターフェース(Interface)を Form2 および Form3 に実装する。

案3.共通処理にしない。
        Select Case TextBox1.Text
            Case "0" : Form2.Buttun_Click()
            Case "1" : Form3.Buttun_Click()
        End Select
# ま、このままだと TextBox1.Text の値を途中で変更されると不都合が
# 起こりますが。。。それは別の問題なので。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。