2017-08-30 18 views
0

フォームは、ユーザーがフォームのコントロールをドラッグして印刷用にドロップすることを可能にするスケール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 
} 

はなぜ新しいコントロールがフォームに表示されないのだろうか?

+0

デザイナで生成されたコードが正しく動作するため、まずデザイナでコードを生成し、それを自分のコードの開始点として使用します。 WinFormsでは、ほとんど全てがデフォルトで正しく動作します...一つの答えに示されているように、コントロールを追加するのを忘れてしまいます。他の答えに示唆されているように、レポートを実行する場合は代わりにレポート。 – Phil1970

答えて

2

あなたがControlsに追加していないようです:

あなたは場所とコントロールの初期化の残りの部分を指定した後、すべてのコントロールでこれを試してください。

this.Controls.Add(lblName) 
+0

それはそうです。ありがとう。 –

+0

@MacMan問題はありません;) –

0

モン朱に思えます第三者のライブラリを使うことができれば、ある種のレポートデザイナーを垣間見ることをお勧めします(私はwinformsがDevExpressレポートのようなものであればわかりません)

私はそうだと思います〜されるあなたのプロジェクトでやっていることに役立ちます。

関連する問題