示例#1
0
        /// <summary>
        /// Insérer une ligne en dessous de la ligne courante
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnInsertBelow_Click(object sender, EventArgs e)
        {
            //Ligne courante
            Guid currentLineId = new Guid();

            if (grdDialog.SelectedRows.Count == 1)
            {
                currentLineId = (Guid)grdDialog.SelectedRows[0].Cells[0].Value;
            }

            //Création du nouveau message
            VO_Message newMessage = _Service.CreateMessage();

            //Réorder
            List <VO_Message> newList = new List <VO_Message>();

            foreach (VO_Message message in CurrentDialog.Messages)
            {
                newList.Add(message);
                if (message.Id == currentLineId)
                {
                    newList.Add(newMessage);
                }
            }
            if (currentLineId == new Guid())
            {
                newList.Add(newMessage);
            }

            //Enregistrement
            CurrentDialog.Messages = newList;

            //Rechargement de la liste
            LoadDialog(CurrentDialog, _ScriptType);

            //Selection de la nouvelle ligne
            foreach (DataGridViewRow row in grdDialog.Rows)
            {
                Guid foreachRowGuid = (Guid)row.Cells[0].Value;
                if (foreachRowGuid == newMessage.Id)
                {
                    row.Selected = true;
                }
                else
                {
                    row.Selected = false;
                }
            }
        }