0

現在、どういうわけか親を失い、現在は何にも親になっていないカスタム コントロールを持っていますが、フォーム デザイナーのコントロールのリストにはまだ残っています。削除ボタンも機能しないため、無効になっています。これは時々発生し、デザイナーのコードを調べて手動で削除するのは面倒です。さらに、他の開発者がこれに悩まされ、混乱する可能性があります。

したがって、コントロール ComponentDesigner 内に動詞を追加して、フォームからそれ自体を削除しようとしています。しかし、それは何にも「子化」されていないため、子として削除できないことに気付きました。したがって、コードを介してフォーム デザイナーからコントロールを削除するにはどうすればよいでしょうか?

4

3 に答える 3

2

これは、デザイン時にコントロールの 1 つが例外をスローした場合に発生する可能性があります。これがサイレント イベントになることはめったにありません。デザイナーはポップアップ メッセージ ボックスを表示します。コード内の例外を try/catch で飲み込むと、メッセージ ボックスが表示されないことがあります。

デザイナーをハッキングしてこれを修正しようとすると、問題がさらに悪化します。デザイナーのコードを編集して修正します。自分が何をしているのかわかっていれば問題ありません。理由が見つからない場合は、ある程度再現できるようにします。次に、Visual Studio の別のインスタンス (Tools + Attach to Process) を開始し、最初のインスタンスを選択します。[Debug + Exceptions] で、CLR 例外の [Thrown] ボックスにチェックマークを付けて、例外がスローされたときにデバッガーが停止するようにします。

于 2012-04-17T01:52:17.550 に答える
0

[ドキュメント アウトライン] タブ内の緩いコントロールを見つけて、この問題を解決しました。この方法は非常に簡単で、グラフィカルです。

于 2012-04-26T04:27:42.440 に答える
0
  1. ファイルをバックアップします。

  2. デザイナー ファイルを開きます。例えば、Form1.Designer.cs

  3. この地域を展開: Windows Form Designer generated code

  4. コード内でコントロールを見つけて削除できるはずです。気をつけて。

于 2012-04-17T01:52:03.830 に答える