/// <summary> /// Gestion des erreurs /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void grdDialog_DataError(object sender, DataGridViewDataErrorEventArgs e) { if (e.RowIndex >= 0 && e.RowIndex < grdDialog.Rows.Count && e.ColumnIndex == 2) { Guid id = (Guid)grdDialog.Rows[e.RowIndex].Cells[0].Value; VO_LineChoices message = ChoiceMessage.Choices.Find(p => p.Id == id); grdDialog.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = new Guid(); } }
/// <summary> /// Click sur Down /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnDown_Click(object sender, EventArgs e) { //Ligne courante if (grdDialog.SelectedRows.Count == 1) { //Ligne à descendre Guid currentLineId = (Guid)grdDialog.SelectedRows[0].Cells[0].Value; VO_LineChoices messageCached = null; //Réorder List <VO_LineChoices> newList = new List <VO_LineChoices>(); foreach (VO_LineChoices message in ChoiceMessage.Choices) { if (message.Id == currentLineId) { messageCached = message; } else { newList.Add(message); if (messageCached != null) { newList.Add(messageCached); messageCached = null; } } } if (messageCached != null) { newList.Add(messageCached); messageCached = null; } //Enregistrement ChoiceMessage.Choices = newList; //Rechargement de la liste LoadScript(ChoiceMessage); //Selection de l'ancienne ligne foreach (DataGridViewRow row in grdDialog.Rows) { Guid foreachRowGuid = (Guid)row.Cells[0].Value; if (foreachRowGuid == currentLineId) { row.Selected = true; } else { row.Selected = false; } } } }
/// <summary> /// Insérer une ligne au dessus de ligne courante /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnInsertAbove_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_LineChoices newMessage = new VO_LineChoices(); newMessage.Id = Guid.NewGuid(); newMessage.SubLines = new List <VO_Line>(); //Réorder List <VO_LineChoices> newList = new List <VO_LineChoices>(); foreach (VO_LineChoices message in ChoiceMessage.Choices) { if (message.Id == currentLineId) { newList.Add(newMessage); } newList.Add(message); } if (currentLineId == new Guid()) { newList.Add(newMessage); } //Enregistrement ChoiceMessage.Choices = newList; //Rechargement de la liste LoadScript(ChoiceMessage); //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; } } }
/// <summary> /// Insére un message dans la gridview /// </summary> /// <param name="message">VO_Message</param> private void InsertMessage(VO_LineChoices message) { DataGridViewRow row = new DataGridViewRow(); //Id DataGridViewTextBoxCell cellId = new DataGridViewTextBoxCell(); cellId.Value = message.Id; //Text DataGridViewTextBoxCell cellText = new DataGridViewTextBoxCell(); cellText.Value = message.Choice; row.Cells.Add(cellId); row.Cells.Add(cellText); grdDialog.Rows.Add(row); }
/// <summary> /// Changement de valeur des les cellules. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void grdDialog_CellValueChanged(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex >= 0 && e.RowIndex < grdDialog.Rows.Count) { Guid id = (Guid)grdDialog.Rows[e.RowIndex].Cells[0].Value; VO_LineChoices message = ChoiceMessage.Choices.Find(p => p.Id == id); if (message != null) { switch (e.ColumnIndex) { case 1: message.Choice = (string)grdDialog.Rows[e.RowIndex].Cells[e.ColumnIndex].Value; break; } } } }