コントロールとコンポーネントの作成のトラブルシューティング
このトピックでは、コンポーネントとコントロールを開発するときに発生する次の一般的な問題の一覧を示します。
ツールボックスにコントロールを追加できません
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 でのデバッグ
継承されたコントロールまたはコンポーネントでイベントが 2 回発生する
これは、Handles
句の重複が原因である可能性があります。 詳細については、「Visual Basicの継承されたイベント ハンドラーのトラブルシューティング」を参照してください。
Design-Time エラー: "コンポーネント 'コンポーネント名' を作成できませんでした"
コンポーネントまたはコントロールは、引数なしのコンストラクターを提供する必要があります。 デザイン環境では、コンポーネントまたはコントロールのインスタンスを作成するときに、パラメーターを受け取るコンストラクター オーバーロードにパラメーターを指定しようとしません。
STAThreadAttribute
STAThreadAttribute は、Windows フォームがシングル スレッド アパートメント モデルを使用することを共通言語ランタイム (CLR) に通知します。 Windows フォーム アプリケーションの Main
メソッドにこの属性を適用しないと、意図しない動作が発生することがあります。 たとえば、ListViewなどのコントロールに背景画像が表示されない場合があります。 一部のコントロールでは、AutoComplete とドラッグ アンド ドロップの正しい動作にこの属性が必要になる場合もあります。
コンポーネント アイコンがツールボックスに表示されない
ToolboxBitmapAttribute を使用してアイコンをカスタム コンポーネントに関連付けると、自動生成されたコンポーネントのツールボックスにビットマップは表示されません。 ビットマップを表示するには、[ツールボックス項目の選択] ダイアログ ボックス 使用してコントロール 再読み込みします。 詳細については、「方法: コントロールのツールボックス ビットマップを指定する」を参照してください。
参照
.NET Desktop feedback