这样您可以使用某些条件找到一行,例如您可以找到您的第一个选中行:
var firstCheckedRow = this.myDataGridView.Rows.Cast<DataGridViewRow>()
.Where(row => (bool?)row.Cells["MyCheckBoxColumn"].Value == true)
.FirstOrDefault();
这样你可以得到一行所有单元格的值,例如你可以把主题放在不同行的字符串中:
var builder = new StringBuilder();
firstCheckedRow.Cells.Cast<DataGridViewCell>()
.ToList().ForEach(cell =>
{
builder.AppendLine(string.Format("{0}", cell.Value));
});
然后你可以展示他们:
MessageBox.Show(builder.ToString());
甚至您也可以在表单上添加PrintDocument 并处理PrintPage 事件以将它们打印到打印机。您还应该在表单上放置一个Button,并在按钮的单击事件中调用PrintDocument1.Print();
代码:
private void Button1_Click(object sender, EventArgs e)
{
PrintDocument1.Print();
}
PrintDocument1_PrintPage(object sender, PrintPageEventArgs e)
{
var firstCheckedRow = this.myDataGridView.Rows.Cast<DataGridViewRow>()
.Where(row => (bool?)row.Cells["MyCheckBoxColumn"].Value == true)
.FirstOrDefault();
var builder = new StringBuilder();
firstCheckedRow.Cells.Cast<DataGridViewCell>()
.ToList().ForEach(cell =>
{
builder.AppendLine(string.Format("{0}", cell.Value));
});
e.Graphics.DrawString(builder.ToString(),
this.myDataGridView.Font,
new SolidBrush(this.myDataGridView.ForeColor),
new RectangleF(0, 0, p.DefaultPageSettings.PrintableArea.Width, p.DefaultPageSettings.PrintableArea.Height));
}