2017-09-05 3 views
-1

私はnew Rectangle()でコンパイルエラーが発生しています。ユーザー入力用のテキストボックスと印刷プレビュー用のボタンがあるWindowsフォームがあります。ボタンを押してプレビューを印刷すると、現在のウィンドウフォームがページに表示されます。テキストボックスの値をコード化して、ページの下半分に印刷するイメージの真上の左上に表示しようとしています。これは私が持っている構文ですが、複数のコンパイルエラーが発生しています。私は何を正しく設定していないのですか?私は、テキスト形式の書類を書類に書くのがかなり簡単なはずですが、私は失敗しています!テキストをテキストボックスからテキストに印刷

private void btnPreview_Click(object sender, EventArgs e) 
{ 
    PrintPreviewDialog PrintPreviewDlg = new PrintPreviewDialog(); 

    PrintPreviewDlg.ClientSize = new System.Drawing.Size(400, 300); 
    PrintPreviewDlg.Location = new System.Drawing.Point(29, 29); 
    PrintPreviewDlg.Name = "PrintPreviewDlg"; 

    PrintPreviewDlg.MinimumSize = new System.Drawing.Size(375, 250); 

    PrintPreviewDlg.WindowState = FormWindowState.Maximized; 
    PrintPreviewDlg.UseAntiAlias = true; 

    dynamic printData = CreatePrintDocument(); 
    printData.DefaultPageSettings.Landscape = true; 
    PrintPreviewDlg.Document = printData; 
    PrintPreviewDlg.ShowDialog(); 
} 

printData CreatePrintDocument() 
{ 
    printData document = new printData(); 
    document.SetParentCtrl(this); 
    document.PrintData.txtAssignmentName = MainInstance.txtAssignmentName.Text; 
    document.PrintData.txtAssignmentNumber = MainInstance.txtAssignmentNumber.Text; 
    document.PrintData.txtPreparedBy = MainInstance.txtPreparedBy.Text; 
    document.PrintData.txtAssignmentSection = MainInstance.txtAssignmentSection.Text; 
    document.PrintData.DocumentName = "Testing Print Functionality"; 

    return document; 
} 


class printData : PrintDocument 
{ 
    Size m_SubHeaderTextFieldSize; 
    int m_NormalRowHeight = 0; 
    class DataToPrintData 
    { 
     public string txtAssignmentName, txtAssignmentNumber, txtPreparedBy, txtAssignmentSection; 
    } 
    protected override void OnPrintPage(PrintPageEventArgs e) 
    { 
    //More print specs here 
    int LeftSubHeadingWidth = 200; 
    m_SubHeaderTextFieldSize = new Size(LeftSubHeadingWidth, m_NormalRowHeight); 
    string printData = "Project Name: " + projectNumberTitle + System.Environment.NewLine + 
       "Prepared By: " + txtPreparedBy + System.Environment.NewLine + 
       "Assignment Section: " + txtAssignmentSection + System.Environment.NewLine; 

    e.Graphics.DrawString(e, new Font("Times New Roman", 12), new SolidBrush(Color.Black), new RectangleF(0,0, m_SubHeaderTextFieldSize, StringAlignment.Near); 
    } 
} 
+2

申し訳ありませんが、 "複数のコンパイルエラー" あまり通信しません。 *何がエラーであるか、そして*あなたがそれらを入手している行*を教えてください。 –

答えて

1

すると、このコードを試してみてください。

var format = new StringFormat {Alignment = StringAlignment.Near}; 
e.Graphics.DrawString(
    printData, 
    new Font("Times New Roman", 12), 
    new SolidBrush(Color.Black), 
    new RectangleF(new PointF(0, 0), m_SubHeaderTextFieldSize), 
    format); 
+0

- >追加している矩形の幅を広げることは可能でしょうか?もしそうなら、どうすればいいのですか? –

+0

@SmithStanleyあなたは 'm_SubHeaderTextFieldSize'フィールドを変更することができます。 [this](https://msdn.microsoft.com/en-us/library/ab924f6y(v = vs.110).aspx)msdnの記事を読んでください。ちなみに 'SizeF'タイプ(あなたの質問のように' Size'ではなく)があります。しかし、それは別の問題のように見えます –

0

new RectangleF(0,0, m_SubHeaderTextFieldSize, StringAlignment.Near) RectangleFのコンストラクタに間違ったパラメータを設定しているようです。 2つのオーバーロードがあります - 最初のPointFを受け入れ、大きさは、あなたがこのようにそれを呼び出すことができます。
new RectangleF(new PointF(0f,0f), m_SubHeaderTextFieldSize)
他の1つの4の点は、このようにそれを呼び出す:それはStringAlignment.Nearのように見える
new RectangleF(0f,0f, m_SubHeaderTextFieldSize.Width, m_SubHeaderTextFieldSize.Height)
何か方法はe.Graphics.DrawString機能に関するものです。 ..

関連する問題