質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Windows Forms

Windows Forms(WinForms)はMicrosoft .NET フレームワークに含まれる視覚的なアプリケーションのプログラミングインターフェイス(API)です。WinFormsは管理されているコードの既存のWindowsのAPIをラップすることで元のMicrosoft Windowsのインターフェイスのエレメントにアクセスすることができます。

Q&A

解決済

2回答

6305閲覧

Visual Studioのユーザーコントロールを追加したところ、そのデザイナがエラーが出て表示されない。どうすればエラーを消してデザイナを表示できるのか?

b_0_0_d

総合スコア9

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Windows Forms

Windows Forms(WinForms)はMicrosoft .NET フレームワークに含まれる視覚的なアプリケーションのプログラミングインターフェイス(API)です。WinFormsは管理されているコードの既存のWindowsのAPIをラップすることで元のMicrosoft Windowsのインターフェイスのエレメントにアクセスすることができます。

0グッド

0クリップ

投稿2022/02/26 21:39

編集2022/02/28 13:18

質問内容

Visual StudioのWinforms開発で、「新しい項目の追加」でユーザーコントロール(Windows Forms)を追加したところ、そのユーザーコントロールのデザイナが、以下のような画面になり表示されませんでした。


イメージ説明
↓見えにくい場合。↓
エラー項目には "object reference not set to an instance of an object" と、
「このエラーのインスタンス」という項目には、"at Microsoft.DotNet.DesignTools.Protocol.Endpoints.Sessions.InitializeRootComponentHandler.HandleRequest(InitializeRootComponentRequest request)"
"at Microsoft.DotNet.DesignTools.Protocol.Endpoints.RequestHandler`2.Microsoft.DotNet.DesignTools.Protocol.Endpoints.IRequestHandler.HandleRequest(Request request) "
と書かれています。


ユーザコントロールを追加してから、どこかコードをいじったということはありません。また、フォームのほうのデザイナは普通に表示されています。

そのためユーザーコントロールがどこかバグっているのかと思い、別のソリューションでユーザーコントロールを追加してみましたが、問題なくデザイナが表示されました。

このエラーを消し、デザイナを表示する方法をどうかご教示ください。

環境

  • Visual Studio 2022。ver 17.1.0。
  • Windows フォームアプリ(.NET FrameWorkでないほう。".NET 6 (プロジェクトテンプレートに ".NET Windowsフォームアプリ"と書いてあるやつ)"のほうです)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2022/02/26 22:41

> .NET FrameWorkでないほう。.NET WinFormsのほうです 意味不明です。.NET 6.0 のことですか?
退会済みユーザー

退会済みユーザー

2022/02/28 08:16

質問者さん、無言ですが、回答したのでそれに対するフィードバックを返してください。役に立った/立たなかったぐらいはすぐにでも返せるのでは? 役に立たなかったならどこがダメだったかを書くとより期待するものに近い回答が出てくるかも。とにかく無言は NG です。
guest

回答2

0

理由は不明ですが解決しました。


万一、同一の問題を解決するためにこの質問を閲覧する方がいらっしゃいましたら、

  1. ユーザーコントロールを削除して追加し直す。
  2. Visual Studioが最新版でない可能性があるのでバージョンアップする。

という手段を試してみてください。
また、visual studioのバージョンについては、SurferOnWwwさんの解答がより詳しいです(ただし、私の問題の原因ではなかったため、ベストアンサーには選びませんでした)。

投稿2022/03/02 11:23

b_0_0_d

総合スコア9

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

どうしても .NET 6.0 でなければダメと言う理由があるのですか?

そういう理由なければ、.NET Framework 4.8 で作ることをお勧めします。

Visual Studio のデザイナが対応してないものがあるし(具体例下記)、

.NET 6.0 で Windows Forms アプリ作成
http://surferonwww.info/BlogEngine/post/2021/12/04/create-winforms-application-using-visual-studio-2022-net-6.aspx

以下の記事にあるように使えなくなったコントロールもあるそうで、サポートは限定的のようです。

.NET Core 3.0 および 3.1 における Windows フォームでの破壊的変更
https://docs.microsoft.com/ja-jp/dotnet/core/compatibility/winforms

Windows OS に依存する Windows Forms アプリなら最初から .NET Framework ベースで作るのが正解だと思います。


【追記】

Visual Studio Community 2022 v17.1.0 のテンプレートで作った .NET 6.0 の Windows Forms で試してみましたがそういう問題は出ないです。

イメージ説明

空のユーザーコントロールが表示されます。その先は試してないのでそれにコンロトールを追加して使うなどして場合は分かりませんが。

イメージ説明

上に紹介した記事にも書きましたが、v17.0.2 の頃はフォームデザイナも表示されなかったということがありました。最新バージョンにアップデートしたらどうなりますか?

投稿2022/02/27 01:04

編集2022/02/27 01:34
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

b_0_0_d

2022/02/28 13:16

返信遅くなり申し訳ありません。以後このようなことがないようにします。 verについてですが、私のVisual Studioは v17.1.0です。(本来は質問に書くべきことですが、失念しており記述できておりませんでした。追記しておきます) v17.1.0であるため、他の同様に .net6のソリューションでは、ユーザーコントロールを普通に追加でき、デザイナも問題なく表示されていました(これは質問に既述の通りです。.net6というのは記述できていませんでしたが)。しかし、質問に挙げているソリューションだけが、なぜかエラーを吐くという状況でした。 ですがその後時間が経って進捗があり、以前質問に挙げていたユーザーコントロールについては未だデザイナでエラー画面で出ているのですが、その後少しして新規でユーザーコントロールを追加したところ、問題なくデザイナが表示されました。 私の記憶では、このエラーが発生したばかりのころは、新たにユーザーコントロールを追加しても同様のエラーを吐いていたのですが(もしかしたら記憶違いかもしれません)、今はすでにそのようなことはなくなっております。そのため、問題はほぼ解決してしまいました。未だ、エラーの原因はわかっていないのですが。 そこで(本筋から大きくそれますが)相談なのですが、この質問の後処理はどうすべきでしょうか。 私としましては、あなたの回答をベストアンサーとして選びたいと考えています(解決につながったわけではないが、大いに有益な情報と思われるため)。 というか、そうしないとこの質問を未解決のまま放置するか、自己解決として「なぜかわからないが問題が解決した」ということを記述しないといけなくなってしまいます。そのため私は、ベストアンサーにあなたの回答を選ぶべきと考えています。質問とは全く関係ない相談になってしまいすみません。回答者様はどうすべきだと考えますか?
退会済みユーザー

退会済みユーザー

2022/02/28 13:59

> 自己解決として「なぜかわからないが問題が解決した」ということを記述しないといけなくなってしまいます。 調べても分からないようなのでそれでクローズして良いと思います。 それはともかく、「質問に挙げているソリューションだけが、なぜかエラーを吐くという状況でした」ということならそれを質問文の一行目にそれを書くべきですし、それ以前に質問者さん固有の問題を質問するのが適切かを考えるべきだと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問