public FrmEditEnvVar(ref EnvironmentSnapshot snapshot, EnvironmentVariable variable) { InitializeComponent(); this.snapshot = snapshot; this.variable = variable; this.MinimumSize = new Size(327, 439); dgvValuesList.TabIndex = 0; LoadSettings(); txtVariableName.CausesValidation = false; dgvHandler = new DgvHandler(ref dgvValuesList); // set default icon dgvValuesList_UserAddedRow(null, null); this.txtVariableName.Text = variable.Name; this.validator = new EnvironmentValueValidator(); if (txtVariableName.Text.Length != 0) { // Check if we are editing variable LoadEnvironmentVariableValues(); } // Set form title this.Text = (txtVariableName.Text.Length != 0 ? "Edit" : "New") + " " + (this.snapshot.Target == EnvironmentVariableTarget.Machine ? "System" : "User") + " Variable"; #region Create DgvHandler Commands commandsList = new CommandStack(); dgvHandler.SetCurrentCell(0); editVarNameCommand = new EditVarNameCommand( txtVariableName ); #endregion DgvHandler Commands // disable buttons SetBtnState(); txtVariableName.CausesValidation = true; isVarNameChanged = false; // Open/Save File dialogs openFileDialog.Filter = FILE_FILTER; openFileDialog.DefaultExt = DEFAULT_FILTER_EXTENSION; saveFileDialog.Filter = FILE_FILTER; saveFileDialog.DefaultExt = DEFAULT_FILTER_EXTENSION; }
private void LocateInWindowsExplorer( ) { EnvironmentValueValidator validator = new EnvironmentValueValidator(); string varValue = string.Empty; foreach ( DataGridViewRow row in dgvValuesList.SelectedRows ) { if ( row.Index != dgvValuesList.Rows.Count - 1 ) { DataGridViewCell cell = row.Cells[ 1 ]; varValue = (cell.Value.ToString().Contains("%")) ? cell.ToolTipText : cell.Value.ToString(); switch ( validator.ValueType( varValue ) ) { case EnvironmentValueType.Folder: { // Open Folder in Windows Explorer LocateInWindowsExplorer( varValue ); } break; case EnvironmentValueType.File: { // Select File in Windows Explorer LocateInWindowsExplorer( "/select," + varValue ); } break; case EnvironmentValueType.Error: { // Select existing folder in the path string parentDir = Path.GetDirectoryName( varValue ); while ( !Directory.Exists( parentDir ) ) { parentDir = Path.GetDirectoryName( parentDir ); } // Open Folder in Explorer LocateInWindowsExplorer( parentDir ); } break; default: // TODO: Remove for multiple rows MessageBox.Show( "Nothing to locate in Windows Explorer", "Validation", MessageBoxButtons.OK, MessageBoxIcon.Exclamation ); break; } } } }