Olá
Não, voce não precisa gerar um txt para imprimir.
No seu caso, voce pode utilizar os componentes PrintDocument e PrintDialog (na seção Printing da Toolbox).
1) Arraste os 2 componentes pro seu form.
2) Clique 2x sobre o icone do PrintDocument e o VS gerará o event handler para o evento PrintPage:
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
// desenha uma string com o texto do seu textbox
e.Graphics.DrawString(textbox1.Text, this.Font, Brushes.Black, new PointF(0, 0));
// a mesma coisa para demais textboxes...
// ...............
// outro exemplo, desenhando uma elipse:
e.Graphics.DrawEllipse(Pens.Black, e.MarginBounds);
}
3) Para imprimir chame o metodo Print() do PrintDocument no seu botao de impressao:
private void BtnImprimir_Click(object sender, EventArgs e)
{
// chama caixa de dialogo para escolha da impressora
// se clicou OK entao imprime
if (printDialog1.ShowDialog() == DialogResult.OK)
printDocument1.Print();
}
É claro que estes componentes da seção Printing são bem simples e é preciso fazer tudo "no braço" desenhando na area de impressão com uso da classe Graphics (procure mais sobre a mesma para mais informações).
Agora, para impressão utilizando um Preview mais profissional, onde vc monta seu relatorio de forma visual, voce pode optar pelo Report Viewer ou pelo Crystal Reports (inclusive há um forum especifico para eles - onde no tópico fixo há links para ótimos vídeos).
Qqquer coisa, só postar.
[]s
Robson Castilho - Desenvolvedor C# - MCTS .Net 2.0 Windows Applications