2012-01-07 6 views
1

私はvb.netプログラミングの初心者です。私はコントロールを作成することと少し混乱します。私がオンラインだとき、私は参照してください。次のコードは、交換可能に使用されているようです:vb.netはプログラムでコントロールを作成します

Dim x As Button 
Dim y As New Button() 

あるいは

Dim z As New System.Windows.Forms.Button() 

私が変数を宣言する方法重要ですか?前もって感謝します。

答えて

1

System.windows.forms.Buttonは、Buttonと同じです。すでにSystem.windows.forms名前空間がインポートされています。これはあなたが別の名前空間に独自のボタンクラスを作成していない限りですが、私はあなたが持っているかどうかは疑問です。

クラス名の後ろにある括弧は、そのクラスの未定義サイズの配列を作成します。大括弧はそのクラスのインスタンスを1つ作成していません。

newキーワードは、コントロールの新しいインスタンスを作成するときに必要です。それがなければ、作成した変数を同じタイプの既存のオブジェクトに割り当てる必要があります。プログラムでボタンを作成する場合は、newキーワードを使用する必要があります。

は、私はまだ混乱しているクラス http://www.homeandlearn.co.uk/net/nets11p2.html http://visualbasic.about.com/od/quicktips/qt/shared_member.htm

+0

括弧を除いてすべてを得ました。 "それはそのクラスの未定義のサイズの配列を作成する"とはどういう意味ですか?それはかなりかわいいですか? :P – 12japerk

+1

クラス名の後ろにある括弧は配列を作成していません。 Newキーワードを使用すると、そのコントロールの新しいインスタンスが初期化されます。これは、Public Sub New()として定義されているコントロールの既定のコンストラクターを呼び出します。コントロールの名前の後ろにある括弧は、任意のパラメータをコンストラクタに渡すために使用されます。ボタンにはパラメータが渡されていないので、大括弧で囲まれています。 – briddums

+0

ありがとう、あなたの答えは非常に有用だった – 12japerk

1

これは、xという名前のButton型の変数を宣言します。あなたはそれに何かを割り当てるまでそれを使うことはできません。

Dim x As Button 

これはButtonをインスタンス化し、それをyに割り当てます。 yoiuをY

Dim y As New Button() 

あるいは

「と呼ばれる」使用可能なボタンを与えるこれは、xと同じであるが、あれば、Jacob.Perkins.Buttonからそれを区別するために、例えば、完全修飾名を使用しあなたは自分自身を発明した。

Dim z As New System.Windows.Forms.Button() 

はい、問題ありません。

新しいものを使用する場合、作成する(インスタンス化する)必要があります。 .NET

DIMがボタンとしてのX
Dim x as Button 
// followed by 
x = new Button() 
// is the same as 
Dim x as new Button() 

「は点」ボタンのインスタンスが期待される変数と呼ばれるXを宣言する。

x = 36と言うと、36はボタンではないので、コンパイラエラーが発生します。数字です。 x = Button1とButton1があなたのフォームに存在していると言ったら、それは大丈夫でしょう、もちろんボタンでもありました。

これを理解するための唯一の本当の方法は、試してみることです。恐ろしいことは何も起こりません。単純にしておけば、エラーメッセージを読むときに間違いが明白になります。

+0

を作成するための基本的な導入のためにこれらのチュートリアルを見てください。いつあなたは "新しい"と "()"を使用し、いつ使用したくないですか? – 12japerk