元のフォームのコピーを作成したので、すべて (クラス、デザイナー コードなど) がまったく同じようにコピーされました。他のクラスと同様に、まったく同じ名前で定義された 2 つのクラスがある場合。彼らは衝突します。同様に、部分クラスの 2 つのファイルがあり、両方のファイルで同じ名前の変数を宣言するとします。衝突します。
あなたがしたことは、デザイナーとの間で上記の競合が発生したことです...そしてパニックになる必要はありません(またはバージョン管理などに頼る必要はありません-クリティカルフィックスの答えを意図したしゃれはありません)。
次に、それらのクラス名を修正しましょう!
複製を右クリックし、Exclude from Project ;
プロジェクトのディレクトリを参照します。
お気に入りのテキスト エディターでFormName.Designer.vb
(またはC# の場合)開きます ( Visual Studio では (!)開きません)。FormName.Designer.cs
フォームのクラスを見つけます (MySuperAwesomeForm
この例では):
Partial Class MySuperAwesomeForm
C# の場合:
partial class MySuperAwesomeForm // FormName.Designer.cs
public partial class MySuperAwesomeForm : Form // FormName.cs
MySuperAwesomeForm
のすべてのインスタンスを別の名前に置き換えます。例: MySuperAwesomeFormTwo
;
お気に入りのテキスト エディターでFormName.vb
(またはC# の場合)開きます (ここでも、 (!) Visual Studioではないことを確認してください)。FormName.cs
MySuperAwesomeForm
のすべてのインスタンスをステップ 4 で使用した同じ値に置き換えます。例: MySuperAwesomeFormTwo
;
- 両方のファイルがまだ開いている場合は、保存して閉じます。
技術的には、各ファイルの最初の数行 (行が、、またはで始まる行) の 1 つだけMySuperAwesomeForm
を置き換える必要があります。MySuperAwesomeFormTwo
Public Class
partial class
public partial class
最後に、Visual Studio に戻り、新しく再分類されたフォームをプロジェクトに追加します。