honag luc

honag luc

  • NA
  • 123
  • 9.4k

Merger cell form starttime to stoptime in C#

Apr 6 2023 10:01 AM

Here is the code show and load the meeting time data from start to finish time of each room. but don't know how to merge into 1 cell only from the meeting start time to the end meeting time as shown below, hope everyone can support

private void selectAreaColor()
{
    string starttime1 = cboStarttime.Text;
    string stoptime1 = cboStoptime.Text;
    // Get the start time and end time inputs and the selected meeting room
    DateTime startTime = DateTime.ParseExact(starttime1, "HH:mm", null);
    DateTime endTime = DateTime.ParseExact(stoptime1, "HH:mm", null);
    string selectedRoom = cboRoom.SelectedItem.ToString();//  You Can Use this Dynamic Based on Your Selection

    // Loop through the rows in the DataGridView and find the matching row
  
    foreach (DataGridViewRow row in grdMeeting.Rows)
    {
        if (row.Cells[0].Value.ToString() == selectedRoom)
        {
            int rowIndex = row.Index;
            // Loop through the columns and compare the start and end times with the time slots
            for (int i = 1; i < grdMeeting.Columns.Count; i++)
            {
                DateTime columnTime;
                try
                {
                    columnTime = DateTime.ParseExact(grdMeeting.Columns[i].HeaderText, "HH:mm", CultureInfo.InvariantCulture);
                }
                catch (Exception ex)
                {
                    continue;
                }
                //DateTime columnTime = DateTime.ParseExact(grdMeeting.Columns[i].HeaderText, "HH:mm", null);
                string _HeaderText = grdMeeting.Columns[i].Name.ToString();
                if (startTime == columnTime)//|| endTime == columnTime
                {
                   
                    grdMeeting.Rows[rowIndex].Cells[_HeaderText].Style.BackColor = Color.Teal;
                   
                    if (startTime == endTime)
                        return;
                    else
                        startTime = startTime.AddMinutes(30);
                   

                }
            }
        }
    }
}


Answers (1)