フォームは、ユーザーがフォームのコントロールをドラッグして印刷用にドロップすることを可能にするスケールA4ページです。 新しく追加されたコントロールはフォームにペイントされません
IEここで、コントロールの位置は、コントロールデータ(たとえば、ファイル名またはイメージ)をA4ページのそのポイントに印刷するために使用されます。
しかし、私はいくつかの場所にコントロールを設定し、不足しているコントロールを追加するフォームのテンプレートをいくつか作成しました。テンプレートを選択すると、Invalidate()
メソッドを呼び出しても、余分なコントロールがフォームに表示されません。ここで
は、フォームにコントロールを追加するメソッドの私のコードです:私は再描画するためにそれを強制的にInvalidate()
メソッドを呼び出したとき
private void standardIDToolStripMenuItem_Click(object sender, EventArgs e)
{
selectedID = true;
selectedInvoice = false;
selectedLetter = false;
lblName.Visible = true;
lblDOB.Visible = true;
lblUID.Visible = true;
lblName.Location = new Point(200, 100);
lblDOB.Location = new Point(200, 125);
lblUID.Location = new Point(200, 150);
lblName2.Text = lblName.Text;
lblName2.Location = new Point(60, 750);
lblName2.Enabled = true;
lblName2.Visible = true;
lblDOB2.Text = lblDOB.Text;
lblDOB2.Location = new Point(60, 775);
lblDOB2.Enabled = true;
lblDOB2.Visible = true;
lblUID2.Text = lblUID.Text;
lblUID2.Location = new Point(60,800);
lblUID2.Enabled = true;
lblUID2.Visible = true;
hidden1.Location = new Point(300, 100);
DOBHidden.Location = new Point(300, 125);
UIDHidden.Location = new Point(300, 150);
#region ID Background placeholder
PictureBox backPic = new PictureBox();
backPic.Location = new Point(24, 48);
backPic.ForeColor = System.Drawing.Color.PaleGreen;
backPic.Size = new Size(504, 176);
backPic.Visible = true;
backPic.Show();
backPic.SendToBack();
this.Invalidate();
#endregion
}
はなぜ新しいコントロールがフォームに表示されないのだろうか?
デザイナで生成されたコードが正しく動作するため、まずデザイナでコードを生成し、それを自分のコードの開始点として使用します。 WinFormsでは、ほとんど全てがデフォルトで正しく動作します...一つの答えに示されているように、コントロールを追加するのを忘れてしまいます。他の答えに示唆されているように、レポートを実行する場合は代わりにレポート。 – Phil1970