c#中DataGridView中的时段时间安排
Posted
技术标签:
【中文标题】c#中DataGridView中的时段时间安排【英文标题】:Periods time schedule in DataGridView in c# 【发布时间】:2021-11-21 21:31:53 【问题描述】:我有名为 TimesDgv 的 DataGridView 包含学校期间的时间。我想自动生成时间。喜欢这个截图图像。我该怎么做?
这是我的代码
for (int i = 0; i < TimesDgv.RowCount - 1; i++)
TimesDgv.Rows[i].Cells[1].Value = TimesDgv.Rows[i].Cells[2].Value;
DateTime time = Convert.ToDateTime(TimesDgv.Rows[i].Cells[1].Value);
TimesDgv.Rows[i].Cells[2].Value = time.AddMinutes(40).ToString("hh:mm");
enter image description here
【问题讨论】:
您能解释一下您的问题吗?你写了一个截图,但没有。 我更新我的帖子 运行发布的代码“之前”网格中有哪些数据?网格有数据源吗? 不,它没有数据源。我有开始时间的组合框,例如我从组合框(8:00)中选择。当我单击我的按钮时,我想在网格中生成时间。如果行是“期间”时间将增加 (40) 分钟,如果“休息”将增加 (5) 分钟。 【参考方案1】:试试下面的代码,它从组合框中获取初始开始时间值,然后将它与今天的日期结合起来创建一个DateTime
对象。然后通过网格行的简单循环根据“periodName”设置时间值。如果时间段名称是“rest”,那么它会在日期时间上增加 5 分钟,如果时间段名称不是“rest”,那么代码会在 DateTime.
上增加 40 分钟
private void button1_Click(object sender, EventArgs e)
string dt = DateTime.Now.ToShortDateString() + " " + comboBox1.Text;
if (DateTime.TryParse(dt, out DateTime currentTime))
for (int i = 0; i < TimesDgv.RowCount; i++)
if (!TimesDgv.Rows[i].IsNewRow)
if (TimesDgv.Rows[i].Cells[0].Value != null && !string.IsNullOrEmpty(TimesDgv.Rows[i].Cells[0].Value.ToString()))
TimesDgv.Rows[i].Cells[1].Value = currentTime;
if (TimesDgv.Rows[i].Cells[0].Value.ToString() == "rest")
currentTime = currentTime.AddMinutes(5);
else
currentTime = currentTime.AddMinutes(40);
TimesDgv.Rows[i].Cells[2].Value = currentTime;
else
MessageBox.Show("Invalid time in combo box");
【讨论】:
谢谢,成功了!以上是关于c#中DataGridView中的时段时间安排的主要内容,如果未能解决你的问题,请参考以下文章
将 DataGridView 单元格 BackColor 传递给变量以供以后在 c# 中使用