【问题标题】:Newly added controls won't paint to Form新添加的控件不会绘制到窗体
【发布时间】:2017-08-30 10:37:11
【问题描述】:

所以我有一个表单,它是一个比例 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 中,默认情况下几乎所有内容都可以正常工作...如一个答案所示,您可能忘记添加控件...并且如另一个答案中所建议的,如果您想做报告,您可能想改用报告.

标签: c# winforms


【解决方案1】:

你好像没有加到Controls

请在指定位置和控件初始化的其余部分后在每个控件上尝试此操作:

this.Controls.Add(lblName)

【讨论】:

  • 就是这样。谢谢孟。
  • @MacMan 没问题 ;)
【解决方案2】:

Mong Zhu 似乎是对的,如果你可以使用一些第三方库,我也建议你看看某种报表设计器(我不确定 winforms 是否提供了 DevExpress 报表之类的东西)

我想这对您在项目中所做的事情会有所帮助。

【讨论】:

    猜你喜欢
    • 2010-10-21
    • 2013-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-27
    • 1970-01-01
    • 2014-03-16
    • 1970-01-01
    相关资源
    最近更新 更多