C# 更改datagridview c中某些选定行之后的单元格值
我有一个datagridview dataGridViewYoungLearnersEggrafes、4个textboxestxtboxSlot、txtboxDurationExam、txtboxBreakFrom、txtboxBreakTo和1个toolstriptextboxTimeSpeakingToolStripMenuItem。我在txtboxSlot中放入一个整数,例如3,在txtboxDurationExam中放入一个整数,在txtboxbreak中放入一个时间,从ex.12:50到ex.13:05。之后,我从网格中选择所有行,并在TimePeakingToolStripMenuItem(文本框)中输入一个时间。 当我按enter键时,我想将TimePeakingToolStripMenuItem的值放入网格的前3行,接下来的3行将采用相同的值+txtboxDurationExam等,当这些行将在txtboxBreakFrom和txtboxBreakTo之间取值时,它将为这3行设置txtboxBreakTo,并将以与前面相同的方式继续。到目前为止,我已经编写了下面的代码,它所做的事情是给出TimePeakingToolStripMenuItem的值,下一行取该值+txtboxDurationExam。 有人能帮我吗? 我将感谢任何帮助C# 更改datagridview c中某些选定行之后的单元格值,c#,sql-server,datagridview,C#,Sql Server,Datagridview,我有一个datagridview dataGridViewYoungLearnersEggrafes、4个textboxestxtboxSlot、txtboxDurationExam、txtboxBreakFrom、txtboxBreakTo和1个toolstriptextboxTimeSpeakingToolStripMenuItem。我在txtboxSlot中放入一个整数,例如3,在txtboxDurationExam中放入一个整数,在txtboxbreak中放入一个时间,从ex.12:50
private void toolStripTextBoxoraSpeaking_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
if (toolStripTextBoxoraSpeaking.Text != "")
{
TimeSpan timeSpeaking = TimeSpan.Parse(toolStripTextBoxoraSpeaking.Text);
int DurationExam = Convert.ToInt32(txtboxDiarkeiaExetasis.Text.ToString());
int slot = Convert.ToInt32(txtboxSlot.Text.ToString());
TimeSpan DialimaApo = TimeSpan.Parse(txtboxDialimaApo.Text);
TimeSpan DialimaEos = TimeSpan.Parse(txtboxDialimaEos.Text);
TimeSpan duration = new TimeSpan(0, 0, DurationExam, 0);
Int32 selectedRowCount = dataGridViewYoungLearnersEggrafes.Rows.GetRowCount(DataGridViewElementStates.Selected);
if (selectedRowCount > 0)
{
for (int i = 0; i < selectedRowCount; i++)
{
dataGridViewYoungLearnersEggrafes.SelectedRows[i].Cells["timeSpeakingDataGridViewTextBoxColumn"].Value = timeSpeaking;//Value.ToString("yyyy-MM-dd")
timeSpeaking += duration;
}
}
BSProgrammaExetaseonYoungLearnersEggrafes.EndEdit();
programmaExetaseonYoung_Learners_Starters_MoversFlyersEggrafesTableAdapter.Connection = MyConn;
programmaExetaseonYoung_Learners_Starters_MoversFlyersEggrafesTableAdapter.Update(DSPerioxes_EidoiEksetaseonNew.ProgrammaExetaseonYoung_Learners_Starters_MoversFlyersEggrafes);
toolStripTextBoxoraSpeaking.Clear();
MessageBox.Show("Οι εγγραφές που επιλέξατε ενημερώθηκαν!", "Ενημέρωση!");
}
else
{
MessageBox.Show("Παρακαλώ πληκτρολογήστε Ώρα Speaking!", "Ενημέρωση!");
}
}
}
我猜如果你创造一个新的环境,你可能会发现你的问题。目前还不清楚你在问什么。此外,发布代码只是实际问题的一部分,不会吸引其他人的帮助。您应该清楚地说明问题是什么,并发布演示问题的代码。我猜您可能缺少的一件事是关于“选定”行的部分。考虑到用户可以按任何顺序选择行,而不一定是按连续顺序选择行,这样做是有风险的。你预料到了吗?此外,当网格将行“添加”到“选定”行集合时,它会通过将“最后一个”选定行添加到集合的“顶部”来执行此操作。因此,“选定”行集合的顺序将与用户实际选择的相反。使用您的代码,这些值将从底部开始向上增加。