このトピックでは、コンポーネントとコントロールを開発するときに発生する次の一般的な問題の一覧を示します。
ツールボックスにコントロールを追加できません
Windows フォームのユーザー コントロールまたはコンポーネントをデバッグできない
継承されたコントロールまたはコンポーネントでイベントが 2 回発生する
Design-Time エラー: "コンポーネント 'コンポーネント名' を作成できませんでした"
STAThreadAttribute
コンポーネント アイコンがツールボックスに表示されない
ツールボックスにコントロールを追加できません
別のプロジェクトまたはサードパーティ製のコントロールで作成したカスタム コントロールを ツールボックスに追加する場合は、手動で追加する必要があります。 現在のプロジェクトにコントロールまたはコンポーネントが含まれている場合は、 ツールボックス に自動的に表示されます。 詳細については、「チュートリアル: カスタム コンポーネントを使用してツールボックスを自動的に設定する」を参照してください。
ツールボックスにコントロールを追加するには
ツールボックスを右クリックし、ショートカット メニューから [項目の選択] を選択します。
[ ツールボックス項目の選択 ] ダイアログ ボックスで、コンポーネントを追加します。
.NET Framework コンポーネントまたはコントロールを追加する場合は、[ .NET Framework コンポーネント ] タブをクリックします。
–又は–
COM コンポーネントまたは ActiveX コントロールを追加する場合は、[ COM コンポーネント ] タブをクリックします。
ダイアログ ボックスにコントロールが表示されている場合は、コントロールが選択されていることを確認し、[ OK] をクリックします。
コントロールが ツールボックスに追加されます。
ダイアログ ボックスにコントロールが表示されない場合は、次の操作を行います。
[ 参照 ] ボタンをクリックします。
コントロールを含む .dll ファイルを含むフォルダーを参照します。
.dll ファイルを選択し、[ 開く] をクリックします。
ダイアログ ボックスにコントロールが表示されます。
コントロールが選択されていることを確認し、[OK] をクリック します。
コントロールが ツールボックスに追加されます。
Windows フォームのユーザー コントロールまたはコンポーネントをデバッグできない
コントロールが UserControl クラスから派生している場合は、テスト コンテナーを使用して実行時の動作をデバッグできます。 詳細については、「方法: UserControlの Run-Time 動作をテストする」を参照してください。
その他のカスタム コントロールとコンポーネントは、スタンドアロン プロジェクトではありません。 Windows フォーム プロジェクトなどのアプリケーションによってホストされている必要があります。 コントロールまたはコンポーネントをデバッグするには、コントロールまたはコンポーネントを Windows フォーム プロジェクトに追加する必要があります。
コントロールまたはコンポーネントをデバッグするには
[ ビルド ] メニューの [ ソリューションのビルド ] をクリックして、ソリューションをビルドします。
[ ファイル ] メニューの [ 追加] を選択し、[ 新しいプロジェクト ] を選択して、テスト プロジェクトをアプリケーションに追加します。
[ 新しいプロジェクトの追加 ] ダイアログ ボックスで、プロジェクトの種類として [Windows アプリケーション ] を選択します。
ソリューション エクスプローラーで、新しいプロジェクトの [参照] ノードを右クリックします。 ショートカット メニューの [参照の 追加 ] をクリックして、コントロールまたはコンポーネントを含むプロジェクトへの参照を追加します。
テスト プロジェクトにコントロールまたはコンポーネントのインスタンスを作成します。 コンポーネントが ツールボックスにある場合は、デザイナー画面にドラッグするか、次のコード例に示すように、プログラムでインスタンスを作成できます。
Dim Component1 As New MyNeatComponent()
MyNeatComponent Component1 = new MyNeatComponent();
コントロールまたはコンポーネントを通常どおりにデバッグできるようになりました。
デバッグの詳細については、「 Visual Studio でのデバッグ 」および「 チュートリアル: デザイン時のカスタム Windows フォーム コントロールのデバッグ」を参照してください。
継承されたコントロールまたはコンポーネントでイベントが 2 回発生する
これは、 Handles
句が重複している可能性があります。 詳細については、「 Visual Basic での継承されたイベント ハンドラーのトラブルシューティング」を参照してください。
Design-Time エラー: "コンポーネント 'コンポーネント名' を作成できませんでした"
コンポーネントまたはコントロールは、引数なしのコンストラクターを提供する必要があります。 デザイン環境では、コンポーネントまたはコントロールのインスタンスを作成するときに、パラメーターを受け取るコンストラクター オーバーロードにパラメーターを指定しようとしません。
STAThreadAttribute
STAThreadAttributeは、Windows フォームがシングル スレッド アパートメント モデルを使用することを共通言語ランタイム (CLR) に通知します。 Windows フォーム アプリケーションの Main
メソッドにこの属性を適用しないと、意図しない動作が発生することがあります。 たとえば、 ListViewなどのコントロールに背景画像が表示されない場合があります。 一部のコントロールでは、AutoComplete とドラッグ アンド ドロップの正しい動作にこの属性が必要になる場合もあります。
コンポーネント アイコンがツールボックスに表示されない
ToolboxBitmapAttributeを使用してアイコンをカスタム コンポーネントに関連付けると、自動生成されたコンポーネントのツールボックスにビットマップは表示されません。 ビットマップを表示するには、[ツールボックス項目の選択] ダイアログ ボックス 使用してコントロール 再読み込みします。 詳細については、「 方法: コントロールのツールボックス ビットマップを指定する」を参照してください。
こちらも参照ください
.NET Desktop feedback