0

私はVisual C#が初めてで、現在、新しいフォーム(デザインではなくコードを使用)を作成し、この新しいフォームに物(つまり、ラベルとテキストボックス)を追加する方法に固執しています。これが私が今持っているものです:

namespace AccountInfo
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            profileForm profile = new profileForm();  // Make new form
            profile.Name = "newProfile";
            profile.Text = "Add a new profile";
            profile.LabelText = "test";
            profile.Show();             // Display form
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }
    }

    public class profileForm : Form
    {
        // Controls
        Label label1 = new Label();

        public profileForm()
        {

        }

        public string LabelText
        {
            set { label1.Text = value; }
        }

        private void profileForm_Load(object sender, EventArgs e)
        {

        }
    }
}

このコードを実行すると、デフォルトのフォームが表示され、button1 をクリックします。新しいフォームが表示されますが、何もありません。ラベルが表示されることを期待していますが、表示されません。この複数の異なる方法を試しましたが (これが私の最新の方法です)、何も表示されません。StackOverflow を見回したところ、別のトピックが 1 つ出てきましたが、その解決策はうまくいきませんでした。これについての洞察をいただければ幸いです:)ありがとうございます!

編集:代わりにコンストラクターを使用してこれも試しました。役に立ちませんでした。

4

3 に答える 3

3

メモリ内にLabelオブジェクトを作成していますが、それを特定の親コントロールに割り当てたり、その位置などを設定したりしていません...

基本的に、profileForm のどこかから次の 2 行を呼び出す必要があります。

   label1.Location = new Point(25,25);

   this.Controls.Add(label1);
于 2012-07-22T07:09:47.800 に答える
1

Dylan が提案したように、次のように load イベントで Label オブジェクトを profileForm に追加する必要があります。

this.Controls.Add(label1);
于 2012-07-22T07:19:55.857 に答える
0

すぐに、この質問に答えるビデオを見ていました。フロー レイアウトで動的にコントロールを追加する方法の完全なガイドです。ビデオは次のとおりです。 http://windowsclient.net/learn/video.aspx?v=13245

于 2012-07-22T07:16:51.193 に答える