/// <summary> /// Browses the folder. /// </summary> private void BrowseFolder() { bool isBottomRow = dgvValuesList.CurrentCell.RowIndex == dgvValuesList.Rows.Count - 1; if (!isBottomRow && dgvValuesList.CurrentCell.Value != null) { string cellValue = dgvValuesList.CurrentCell.Value.ToString(); if (Directory.Exists(cellValue)) { folderBrowserDialog.SelectedPath = cellValue; } } if (folderBrowserDialog.ShowDialog() == DialogResult.OK) { DgvBrowseFolderCommand browseFolderCommand = null; int rowIndex = 0; string selectedPath = folderBrowserDialog.SelectedPath; if (isBottomRow) { rowIndex = this.dgvHandler.AddRow(selectedPath); browseFolderCommand = new DgvBrowseFolderCommand(this.dgvHandler); } else { rowIndex = dgvValuesList.CurrentCell.RowIndex; object value = dgvValuesList.Rows[rowIndex].Cells[1].Value; if (value != null) { browseFolderCommand = new DgvBrowseFolderCommand( this.dgvHandler, dgvValuesList.Rows[rowIndex]); } else { browseFolderCommand = new DgvBrowseFolderCommand(this.dgvHandler); } this.dgvHandler.SetRowValue(rowIndex, selectedPath); this.dgvHandler.SetRowIcon(rowIndex, selectedPath); } browseFolderCommand.NewRow = dgvValuesList.Rows[rowIndex]; this.AddCommand(browseFolderCommand); } }