C# 更改datagridview c中某些选定行之后的单元格值

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

我有一个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。 有人能帮我吗? 我将感谢任何帮助

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!", "Ενημέρωση!");
                }
            }


        }

我猜如果你创造一个新的环境,你可能会发现你的问题。目前还不清楚你在问什么。此外,发布代码只是实际问题的一部分,不会吸引其他人的帮助。您应该清楚地说明问题是什么,并发布演示问题的代码。我猜您可能缺少的一件事是关于“选定”行的部分。考虑到用户可以按任何顺序选择行,而不一定是按连续顺序选择行,这样做是有风险的。你预料到了吗?此外,当网格将行“添加”到“选定”行集合时,它会通过将“最后一个”选定行添加到集合的“顶部”来执行此操作。因此,“选定”行集合的顺序将与用户实际选择的相反。使用您的代码,这些值将从底部开始向上增加。