Pregunta

Tengo un dataGridView que tiene una columna llamada Fecha de vencimiento que es de tipo System.DataTime. Quiero poner estas fechas en un MonthCalendar. ¿Tengo que repetir throught la columna? ¿Hay que echarlo?

¿Fue útil?

Solución

para obtener la fecha de cada columna SI usted tiene que recorrer todas las filas de la columna. A medida que se está visualizando la fecha como texto tendrá que analizar usando métodos DateTime.Parse o DateTime.TryParse.

EDIT: - suponiendo que esto es una aplicación de formas. He añadido una DataGridView, un MonthCalendar y una Button. Pude ver las fechas de gridview y en negrilla las fechas seleccionadas en el mes 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();
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top