アプリ版:「スタンプのみでお礼する」機能のリリースについて

VB2008です。

Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.Text = "a"
Form1.Text = "a" ’←「Form1.Text」に波線ができる。
End Sub
End Class

というように、
「Me」を「Form1」にすると
「既定のインスタンスからそれ自体を参照できません。'Me' を使用してください。」
となります。

VBAなら「Me」を「Form1」にしてもエラーにならないのに、
どうしてVBだとエラーになるのでしょうか?

A 回答 (1件)

"既定のインスタンス" で検索すれば勉強できると思います。


Form1 は型。
あなたがそこで Text プロパティを操作しようとしているのは Form1 という型から生成されたインスタンス。
で、"そこ" はそのインスタンス自身がメモリに読み込まれるとき。
つまりその場所で Text プロパティを操作するって事は型である Form1 ではなく、インスタンスかされた自分自身てことです。

"この場所からは設計図のタイトルは変えられません。設計図から作られた製品のタイトルを変えなさい"
てことです。


今の VB は VB 6.0 や VBA 経験者を取り込みやすくするため、インスタンスの名前を付けずにフォームをインスタンスかする場合、フォームの型と同じ名前でインスタンス化されるようになっています。
これが "既定のインスタンス" です。
非常にわかりづらい仕様です。
    • good
    • 0
この回答へのお礼

わかりました。検索してみます。ありがとうございます。

お礼日時:2009/07/27 00:34

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