因此,我有一個表A4是一個縮放頁面,允許用戶在窗體上拖放控件進行打印。新添加的控件不會繪製到表格
IE如果控件位於窗體上,則其位置用於將控件數據(例如:文件名或圖像)打印到A4頁面的那一點。
但是我創建了一些表單的模板,用於在特定位置設置控件並添加任何缺失的控件。當選擇模板時,即使我調用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
}
爲什麼將新的控件不會出現在窗體上時,我已經叫Invalidate()
方法,迫使它重繪?
由設計人員生成的代碼正常工作,首先與設計人員生成代碼,然後將其用作自己代碼的起點。在WinForms中,默認情況下幾乎所有東西都能正確工作......正如在一個答案中所指出的那樣,您可能忘記添加控件......並如另一個答案中所建議的那樣,如果您想要執行報告,則可能需要使用報告。 – Phil1970