سؤال

لدي DataGridView الذي يحتوي على عمود يسمى التاريخ المستحق الذي هو من نوع System.Datatime. أريد أن أضع هذه التواريخ في شهر Monthcalendar. هل يجب علي تكرار الأعمدة؟ هل يجب علي إلقاء ذلك؟

هل كانت مفيدة؟

المحلول

للحصول على تاريخ من كل عمود، يجب عليك التكرار من خلال جميع الصفوف في العمود. كما تعرض تاريخه كنص ستحتاج إلى تحليله باستخدام DateTime.Parse أو DateTime.TryParse طرق.

تحرير: - يفترض أن هذا هو تطبيق النماذج. أضفت أ DataGridView, ، أ MonthCalendar و Button. وبعد تمكنت من الحصول على تواريخ من GridView وجريئة التواريخ المحددة في الشهر.

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();
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top