1

私はVisual Studioを初めて使用し、コントロールをいじって物事がどのように機能するかを確認しています。ボタンが 1 つだけあるフォームを 1 つ作成しました。このボタンを押すと、"Hello World" が画面に表示されます。もっと複雑なことを試すために、そのボタンを削除し、フォームに他のさまざまなツールを追加しました。ただし、Form.cs ファイルのコードは、これらの変更をデザインに反映するように更新されていないため、手動で更新する方法が見つかりません。

アドバイスをいただければ幸いです。

よろしく。

4

7 に答える 7

2

Form1.Designer.csを見ると(フォームの名前がForm1であると仮定)、アプリのビルドによって生成されたすべてのコードのリストが表示されます。そこにボタン名が表示されます。ボタンが削除されている場合は、コメント間のコードを安全に削除できます。

于 2012-05-31T17:42:06.940 に答える
1

コードがこれらの行の下にあるForm1.Designer.csファイルの変更を確認できます。

    #region Windows Form Designer generated code

    /// <summary>
    /// Required method for Designer support - do not modify
    /// the contents of this method with the code editor.
    /// </summary>

手動で更新するには、manual_update() を呼び出します。

manual_update()
{

        Button b = new Button();
        b.Text = "new button";
        b.Size = new Size(100, 20);
        b.Location = new Point(20, 20);
        this.Controls.Add(b);
}

ほとんどすべてを手動で行うことができます。

于 2012-05-31T17:47:43.623 に答える
0

Buttonイベントがあった場合OnClick、 が消去されても消去されませんButton。Visual Studio は、このコードが別の場所で使用される可能性があり、データを破壊しないことを前提としています。

イベントがあったコントロールを削除するたびに、それらは残ります。手動でコードを調べてクリーンアップする必要があります。

編集:

新しいコントロールの「新しいコード」を表示するには、ボタンをダブルクリックしてそのコントロールのデフォルト イベントを生成するか、そのコントロールの [プロパティ] に移動してイベントのコードを生成する必要があります。

于 2012-05-31T18:08:57.363 に答える
0

また、再構築を試してください..フォームから削除した場合、VSがそのコードをデザイナーから削除しない場合があります..手動で削除/更新する必要があります..コンパイルエラーも発生していないことを確認してください

エラーがある場合は、エラーが解決されるまで変更が表示されない場合があります。

于 2012-05-31T17:44:08.780 に答える
0

フロントエンド フォーム ファイルに他のツールを追加したと述べたので、フォーム内の Web コントロールが、使用しているイベント ハンドラーに接続されていることを確認してください。

また、サニティチェックのため、および必要に応じて、ページを再コンパイル/再構築していることを確認してください。

于 2012-05-31T17:45:25.487 に答える
0

ファイルがありForm1.Designer.cs、デザイナー コードはこのファイルにあります。ソリューション エクスプローラーにファイルが表示されない場合は、ソリューション エクスプローラー ペインの上部にボタンがありますview files。クリックして。

Visual Studio は、コントロールのドラッグ アンド ドロップ機能を提供します。プロパティを変更するには、コントロールを右クリックして [プロパティ] をクリックします。したがって、実際にはデザイナー コードを変更する必要はないかもしれません。しかし、あなたは好きなようにすることができます...

于 2012-05-31T17:53:43.963 に答える
0

あなたの質問を正しく理解できれば、コントロールを追加してコントロール プロパティを変更するコードはすべて自動生成され、例として Form1.Designer.cs に存在します。このファイルは、通常、Visual Studio を除いて決して触れてはなりません。

InitializeComponent()コントロールを手動で追加する場合は、呼び出しの後、またはイベントのようなイベントでForm1.cs で行う必要がありますForm_Load。フォーム ロード イベントにボタンを追加する例を次に示します。

private void Form_Load(object sender, EventArgs e)
{
    Button b = new Button();
    b.Left = 10;
    b.Top = 10;
    b.Text = "Button!";
    this.Controls.Add(b); //'this' would be the form self-pointer
}

イベントは異なります。これらは Form1.cs で変更されるものですが、デザイナーに加えられた変更は、イベントのコード ビハインド ファイルに常に反映されるとは限りません。これがVSの性質です。ボタンを削除しても、コードからイベントが削除されない場合や、その逆の場合があります。

コード ファイルでコントロールから手動でイベントを削除する必要がある場合があります。

追加されたコントロールのコードは、通常、デザイナーでコントロールを変更することによって強制できますが、コントロール名が変更されたときに変更されないものの少なくとも 1 つはイベント名です。たとえば、ボタンが呼び出さbutton1れてクリック イベントにリンクしている場合button1_click(object sender, EventAgrs e)、ボタン名をbutton12345に変更しても、イベント名は変更されません。

コントロール プロパティを開いて稲妻をクリックすると、デザイナーでリンクされたイベントを変更できます。これにより、コントロールのすべてのイベントが表示されます。イベント フィールドをダブルクリックすると、リンクされたイベントに移動するか、フィールドが空白の場合はイベントが生成されます。このダイアログでは、複数のコントロールを 1 つのイベントにリンクすることもできます。

イベント プロパティ ダイアログの例を次に示します。 イベントダイアログ

コントロールの追加、イベントのリンク、コントロールの削除などをいじるだけで、デザイナーとコード ビハインドの両方でいつ変更が更新され、いつ変更が更新されないかを把握できます。

于 2012-05-31T18:14:55.193 に答える