我有一个dataGridView,它有一个名为Date Due 的列,它的类型是System.DataTime。我想把这些日期放在一个月日历中。我必须遍历列吗?我必须投吗?
问问题
885 次
1 回答
1
要从每一列获取日期是的,您必须遍历列中的所有行。当您将日期显示为文本时,您需要使用DateTime.Parse
orDateTime.TryParse
方法进行解析。
编辑:-假设这是一个表单应用程序。我添加了一个DataGridView
,一个MonthCalendar
和一个Button
。我能够从 gridview 中获取日期,并在月份 cal 中将所选日期加粗。
public Form2()
{
InitializeComponent();
CreateData();
}
private void CreateData()
{
var dtb = new DataTable();
dtb.Columns.Add("Column1");
dtb.Columns.Add("Column2");
dtb.Columns.Add("Column3");
var dt = DateTime.Now;
var rand = new Random();
for (var i = 0; i < 10; i++)
{
var r = dtb.NewRow();
r.ItemArray = new object[] {dt.ToString("ddd"), dt.ToString("MMM"), dt};
dt = dt.AddDays(rand.Next(30));
dtb.Rows.Add(r);
}
dataGridView1.DataSource = dtb;
}
private void button1_Click(object sender, EventArgs e)
{
var bds = new List<DateTime>();
foreach (DataGridViewRow row in dataGridView1.Rows)
{
DateTime dt;
var b = DateTime.TryParse(row.Cells[row.Cells.Count - 1].Value+"", out dt);
if(!b) continue;
bds.Add(dt);
}
cal.BoldedDates = bds.ToArray();
}
于 2009-12-08T01:58:30.413 回答