/// <summary> /// データグリッドビューをクリックした際に呼び出される。 /// ボタンのクリックイベントがないため、このイベントで代用している。 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void dgv_CellContentClick(object sender, DataGridViewCellEventArgs e) { if (this.dgv.SelectedCells.Count != 1) { return; } switch (this.dgv.SelectedCells[0].OwningColumn.Name) { case DgvCol.DELETE: if (MessageBox.Show("この行を削除しますか?", "警告", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2) == DialogResult.Yes) { var sequence = int.Parse((string)this.dgv.Rows[this.dgv.SelectedCells[0].OwningRow.Index].Cells[DgvCol.SEQUENCE].Value); CurrentSettingFile.RemoveAt(sequence); this.dgv.Rows.RemoveAt(this.dgv.SelectedCells[0].OwningRow.Index); EditedFlag = true; } break; case DgvCol.KEYBOARD_CANCEL: { this.dgv.RefreshEdit(); break; } default: return; } }
/// <summary> /// 下へボタンクリックイベント /// 選択されている設定行を1行下に移動する /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnDownRow_Click(object sender, EventArgs e) { var rowIndex = this.dgv.SelectedCells[0].OwningRow.Index; if (rowIndex < this.dgv.Rows.Count - 1) { var sequence = int.Parse((string)this.dgv.Rows[this.dgv.SelectedCells[0].OwningRow.Index].Cells[DgvCol.SEQUENCE].Value); CurrentSettingFile.DownAt(sequence); var row = this.dgv.Rows[rowIndex]; this.dgv.Rows.RemoveAt(rowIndex); this.dgv.Rows.Insert(rowIndex + 1, row); this.dgv.ClearSelection(); this.dgv.Rows[rowIndex + 1].Selected = true; EditedFlag = true; } }
/// <summary> /// データグリッドビューのセルのクリック時に呼ばれる /// チェックボックスが小さくて押しづらいためこのイベントで代用する。 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void dgv_CellClick(object sender, DataGridViewCellEventArgs e) { if (this.dgv.SelectedCells.Count != 1) { return; } switch (this.dgv.SelectedCells[0].OwningColumn.Name) { case DgvCol.KEYBOARD_CANCEL: var dgvcbc = (DataGridViewCheckBoxCell)this.dgv.SelectedCells[0]; dgvcbc.Value = dgvcbc.Value == dgvcbc.TrueValue ? dgvcbc.FalseValue : dgvcbc.TrueValue; var sequence = int.Parse((string)this.dgv.Rows[this.dgv.SelectedCells[0].OwningRow.Index].Cells[DgvCol.SEQUENCE].Value); CurrentSettingFile.ChangeKeyboardCancel(sequence, (bool)dgvcbc.Value); this.dgv.RefreshEdit(); break; default: return; } }
/// <summary> /// 設定の1行追加 /// インスタンスを生成し、Massに追加する /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnAddRow_Click(object sender, EventArgs e) { var acf = new AddCommandForm(); acf.ShowDialog(); if (acf.result == AddCommandForm.Result.OK) { string mode; int sequence; switch (acf.type) { case AddCommandForm.Type.COMMAND: sequence = CurrentSettingFile.Add(new Command()); mode = Mode.COMMAND; break; case AddCommandForm.Type.BARRAGE: sequence = CurrentSettingFile.Add(new Barrage()); mode = Mode.BARRAGE; break; case AddCommandForm.Type.TOGGLE: sequence = CurrentSettingFile.Add(new Toggle()); mode = Mode.TOGGLE; break; case AddCommandForm.Type.MOUSE: sequence = CurrentSettingFile.Add(new Behavior.Action.Mouse()); mode = Mode.MOUSE; break; default: return; } var row = this.dgv.Rows.Add(); this.dgv.Rows[row].Cells[DgvCol.SEQUENCE].Value = sequence.ToString(); this.dgv.Rows[row].Cells[DgvCol.MODE].Value = mode; this.dgv.Rows[row].Cells[DgvCol.PRIORITY].Value = "0"; } }