2016-09-03 18 views
0

vb自宅のコンポーネントと、追加されたフォームを介したネストコンポーネントへのアクセス。 いくつかのボタンなどを含むコンポーネントを作成しました。このコンポーネントをフォームに追加すると、そのコンポーネントのプロパティにアクセスでき、コンポーネントの「入れ子になった」ボタンにはアクセスできません。実行時に、デバッグモードでは、「親」コンポーネント内のボタンの1つをクリックしてボタンのコードにアクセスできます。しかし、私は "親"コンポーネントが置かれているフォームを介してボタンにアクセスする必要があります。問題のフォームにこのコンポーネントの倍数が追加されており、どちらが選択されたかといったデータを取得する必要があります。 任意のヘルプは素晴らしいでしょうvbコンポーネント内のネストされたコンポーネントへのアクセス

+1

あなたはユーザーコントロールについて話していますか?コンポーネント*それ自体は通常、視覚的要素を持っていません – Plutonix

答えて

0

複合UserControlの子コントロールに直接アクセスすることはできません。これを行うには、UserControlでプロパティとメソッドを定義する必要があります。たとえば、コードの一部を私たちに提供し、正確に何をしたいのかを教えたら、私たちはあなたを助けることができます。

0

UserControlデザイナーでアクセスするコントロールを選択します。 [デザイン]セクションの[プロパティ]ウィンドウでPrivateModifiersプロパティをPublicまたはInternalに変更します。

これで、コントロールはUserControlの外部からアクセスできます。これはフォーム上のコントロールに対しても機能します。

また、コントロールが宣言されているtheUserControl.designer.csのコードでアクセス修飾子を直接変更することもできます。これを行う前に、デザイナーを開いておく必要がある場合は、デザイナーを閉じることをお勧めします。


たぶんクリーナーアプローチは

public TextBox MyTextBox { get { return textBox1; } } 

プロパティにコントロールをカプセル化するために、あなたはそれだけの特定のプロパティにアクセスする必要がされている場合は、さえクリーナーアプローチは、まさにこのプロパティをカプセル化することです

public string FirstName 
{ 
    get { return textBox1.Text; } 
    set { textBox1.Text = value; } 
} 

このプロパティにアクセスするコードは、特定のコントロールに依存しません。

関連する問題