私はC#でアドレス帳WinFormを作成しましたが、これをテキストファイルとして印刷する方法を知りたいのですが、どうすればこのことをやりますか?Windowsフォームを印刷するには
DataGridViewにすべてを表示しましたが、テーブルの情報をテキストとして印刷するのが理想的です。
私はC#でアドレス帳WinFormを作成しましたが、これをテキストファイルとして印刷する方法を知りたいのですが、どうすればこのことをやりますか?Windowsフォームを印刷するには
DataGridViewにすべてを表示しましたが、テーブルの情報をテキストとして印刷するのが理想的です。
プレビューとあなたのWindowsからの印刷は、.NETの印刷の名前空間を持つアプリケーション http://msdn.microsoft.com/en-us/magazine/cc188767.aspx
それは(2003)少し古いのですが、それでもreleventに見えるフォーム。
あなたは何をしたいのか詳細を教えてください。
どのようにテキストファイルとしてフォームを印刷しますか?ラベル、ボタン、その他のコントロールなどのグラフィックをテキストに変換するにはどうすればよいですか?
あなたは、可能であり、あなたが両方の方法でグラフィックレンダリングまたはテキストのみで印刷されたコンテンツのあらゆる側面を制御することができます尋ねる出発点として、ここを見て持っているもの:
は最も単純な方法はにありますテキストファイルを作成し、その中に値を書き込む。このように:
var textFile = File.CreateText("Address.txt");
textFile.WriteLine("Name: Fischermaen");
textFile.Close();
あなたはこのように試みることができる...
[STAThread]
static void Main()
{
Application.Run(new PrintPreviewDialog());
}
private void btnOpenFile_Click(object sender, System.EventArgs e)
{
openFileDialog.InitialDirectory = @"c:\";
openFileDialog.Filter = "Text files (*.txt)|*.txt|" +
"All files (*.*)|*.*";
openFileDialog.FilterIndex = 1; // 1 based index
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
StreamReader reader = new StreamReader(openFileDialog.FileName);
try
{
strFileName = openFileDialog.FileName;
txtFile.Text = reader.ReadToEnd();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
return;
}
finally
{
reader.Close();
}
}
}
private void btnSaveFile_Click(object sender, System.EventArgs e)
{
SaveFileDialog sfd = new SaveFileDialog();
sfd.InitialDirectory = @"c:\";
sfd.Filter = "Text files (*.txt)|*.txt|" +
"All files (*.*)|*.*";
sfd.FilterIndex = 1; // 1 based index
if (strFileName != null)
sfd.FileName = strFileName;
else
sfd.FileName = "*.txt";
if (sfd.ShowDialog() == DialogResult.OK)
{
StreamWriter writer = new StreamWriter(strFileName,false);
try
{
strFileName = sfd.FileName;
writer.Write(txtFile.Text);
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
return;
}
finally
{
writer.Close();
}
}
}
//ここで、あなたは何をすべき
private void btnPageSetup_Click(object sender, System.EventArgs e)
{
PageSetupDialog psd = new PageSetupDialog();
psd.Document = printDocument;
psd.ShowDialog();
}
private void btnPrint_Click(object sender, System.EventArgs e)
{
PrintDialog pdlg = new PrintDialog();
pdlg.Document = printDocument;
if (pdlg.ShowDialog() == DialogResult.OK)
{
try
{
printDocument.Print();
}
catch(Exception ex)
{
MessageBox.Show("Print error: " + ex.Message);
}
}
}
private void btnPrintPreview_Click(object sender, System.EventArgs e)
{
PrintPreviewDialog ppdlg = new PrintPreviewDialog();
ppdlg.Document = printDocument;
ppdlg.ShowDialog();
}
private void pdPrintPage(object sender, PrintPageEventArgs e)
{
float linesPerPage = 0;
float verticalOffset = 0;
float leftMargin = e.MarginBounds.Left;
float topMargin = e.MarginBounds.Top;
int linesPrinted = 0;
String strLine = null;
linesPerPage = e.MarginBounds.Height/currentFont.GetHeight(e.Graphics);
while (linesPrinted < linesPerPage &&
((strLine = stringReader.ReadLine())!= null))
{
verticalOffset = topMargin + (linesPrinted * currentFont.GetHeight(e.Graphics));
e.Graphics.DrawString(strLine, currentFont, Brushes.Black, leftMargin, verticalOffset);
linesPrinted++;
}
if (strLine != null)
e.HasMorePages = true;
else
e.HasMorePages = false;
}
private void pdBeginPrint(object sender, PrintEventArgs e)
{
stringReader = new StringReader(txtFile.Text);
currentFont = txtFile.Font;
}
private void pdEndPrint(object sender, PrintEventArgs e)
{
stringReader.Close();
MessageBox.Show("Done printing.");
}
}
...]ボタンをクリックして、テキストファイルとしてフォームを印刷することができます私はそれが保存機能のtxtFileと言う場所を渡しますか? – JaredH20