0

フォームにテキストを書き込むためのラベルを作成するプログラムを書いていましたが、何とか重要なクラスを破壊した後、最初からやり直しました...もうラベルを印刷することはできないようですが、単に印刷しません.表示されません。

public partial class Form1 : Form
{
    static Form FormX = new Form();

    public Form1()
    {
        Shown += new EventHandler(FormX_Shown);
        InitializeComponent();
    }

    public void FormX_Shown(object sender, EventArgs e)
    {
        WriteTextOnScreen("Hello!");
    }

    public void WriteTextOnScreen(string text)
    {
        Label tempLabel = new Label();
        tempLabel.Text = text;
        tempLabel.Name = "";
        tempLabel.Location = new Point(10, 10);
        FormX.Controls.Add(tempLabel);
    }

}

何が問題なのかわかりませんが、私は自分でそれを修正するほど賢くないので、今では信じられないほど厄介になっています:-P

4

1 に答える 1

1

FormX のコントロール コレクションにラベルを追加すると、このフォームは表示されません。
独自のインスタンスにラベルを追加する必要があると思います(これ)

public void WriteTextOnScreen(string text)
{
    Label tempLabel = new Label();
    tempLabel.Text = text;
    tempLabel.Name = "";
    tempLabel.Location = new Point(10, 10);
    this.Controls.Add(tempLabel);
}

ただし、場所は常に同じ (10,10) であるため、これは 1 つのラベルに対してのみ機能します。このメソッドを複数回呼び出すと、最後のラベルが前のラベルの上に描画され、最後のラベルのみが表示されます。

于 2013-06-02T19:39:06.813 に答える