Pergunta

Eu tenho um DataGridView que tem uma coluna chamada Data de Vencimento que é do tipo System.DataTime. Eu quero colocar essas datas em um MonthCalendar. Eu tenho que iterate throught a coluna? Eu tenho que lançá-lo?

Foi útil?

Solução

para obter a data de cada coluna SIM você tem para percorrer todas as linhas na coluna. Como você está exibindo data como texto que você terá de analisar usando métodos DateTime.Parse ou DateTime.TryParse.

EDIT: - supondo que este é um aplicativo de formulários. Eu adicionei uma DataGridView, um MonthCalendar e uma Button. Eu era capaz de obter datas de gridview e em negrito as datas selecionadas no mês 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 em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top