从列表框中读取项目
我有一个带有一个或多个文本文件的列表框,我将打印为命令。 但我不知道如何使流读取器从列表框中读取?从列表框中读取项目
到目前为止,我得到这个.:
public void OutputBtn_Click(object sender, EventArgs e)
{
PrintDocument PrintD = new PrintDocument();
PrintD.PrintPage += new PrintPageEventHandler(this.PrintDocument_PrintPage);
StreamReader SR = new StreamReader("C:\\myfile.txt");
PrintD.Print();
}
是有enyway我可以改变 “C:\ myfile.txt的” 还是我用 “的foreach”?
你想要这样的东西吗?我不完全明白这个问题
string[] fileEntries = Directory.GetFiles("C:\\temp\\").Where(p =>
p.EndsWith(".txt")).ToArray<string>();
foreach (string fileName in fileEntries)
{
lb.Items.Add(new ListItem(fileName, fileName);
}
好吧,让你有列表框填充文件名?
private StreamReader sr;
public void OutputBtn_Click(object sender, EventArgs e)
{
foreach(var li in lb.Items)
{
PrintDocument PrintD = new PrintDocument();
PrintD.PrintPage += new PrintPageEventHandler(this.PrintDocument_PrintPage);
sr = new StreamReader(li.ToString());
PrintD.Print();
}
}
private void PrintDocument_PrintPage(object sender, PrintPageEventArgs ev)
{
float linesPerPage = 0;
float yPos = 0;
int count = 0;
float leftMargin = ev.MarginBounds.Left;
float topMargin = ev.MarginBounds.Top;
String line = null;
// Calculate the number of lines per page.
linesPerPage = ev.MarginBounds.Height/
printFont.GetHeight(ev.Graphics) ;
// Iterate over the file, printing each line.
while (count < linesPerPage && ((line = sr.ReadLine()) != null))
{
yPos = topMargin + (count * printFont.GetHeight(ev.Graphics));
ev.Graphics.DrawString (line, printFont, Brushes.Black,
leftMargin, yPos, new StringFormat());
count++;
}
// If more lines exist, print another page.
if (line != null)
ev.HasMorePages = true;
else
ev.HasMorePages = false;
}
我的Listbox包含一个文件名列表。我希望所有这些被streamreader读取,然后打印出来。 btw。我不能让ListItem工作。 :S – 2012-08-15 10:03:15
这就是代码的第二部分? – 2012-08-15 10:03:46
是啊。我不能找到ListItem :( – 2012-08-15 10:11:28
ps。在我的代码中,我假设你的Listbox的ID是'lb' – 2012-08-15 09:37:08