private void dataGridView1_MouseUp(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Right) { DataGridView.HitTestInfo ht; ht = dataGridView1.HitTest(e.X, e.Y); if (ht.Type == DataGridViewHitTestType.Cell) { currentContextFile = getFileByRowIndex(ht.RowIndex); contextMenuStrip1.Items[changePropertyValueMenuItem.Name].Text = String.Format(contextMenuStrip1.Items[changePropertyValueMenuItem.Name].Text, Settings.Default.propertyName); // Enable items by default foreach (object x in contextMenuStrip1.Items) { if (x.GetType() == toolStripSeparator1.GetType()) { continue; } ToolStripMenuItem q = (ToolStripMenuItem)x; q.Enabled = true; } if (currentContextFile != null) { contextMenuStrip1.Items[chooseFileManuallyToolStripMenuItem.Name].Enabled = false; if (currentContextFile.getStatus().Type == SWFileStatusType.FILE_MISSING) { contextMenuStrip1.Items[chooseFileManuallyToolStripMenuItem.Name].Enabled = true; } } else { foreach (object x in contextMenuStrip1.Items) { if (x.GetType() == toolStripSeparator1.GetType()) { break; } ToolStripMenuItem q = (ToolStripMenuItem)x; q.Enabled = false; } } if (Settings.Default.showEmptyRows) { showEmptyRowsToolStripMenuItem.Checked = true; } contextMenuStrip1.Show(dataGridView1, e.Location); } } }
/// <summary> /// Updates file's name, path and status in grid view. Use only from thread that created the UI !!! /// </summary> /// <param name="f">File to update</param> public void updateFile(SWFile f) { foreach (DataGridViewRow row in dataGridView1.Rows) { if (row.Tag == f) { row.Cells[typeColumn.Index].Value = f.typeString; row.Cells[nameColumn.Index].Value = f.name; row.Cells[filepath.Index].Value = f.file; SWFileStatus s = f.getStatus(); if (s != f.lastShownStatus) { row.Cells[statusColumn.Index].Value = s.ToString(); row.Cells[dataGridView1.Columns["statusColumn"].Index].Style.ForeColor = s.Color; } f.lastShownStatus = s; break; } } }
private void contextMenuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e) { // Hide context menu contextMenuStrip1.Hide(); if (e.ClickedItem == contextMenuStrip1.Items[openToolStripMenuItem.Name]) { // Open openFile(currentContextFile); } else if (e.ClickedItem == contextMenuStrip1.Items[readNamePropertyFromFileToolStripMenuItem.Name]) { // Read name currentContextFile.getNameFromFile(); if (currentContextFile.getStatus().Type == SWFileStatusType.FILE_MISSING) { MessageBox.Show(String.Format("Can not read from missing file!", currentContextFile.file), "", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } updateFile(currentContextFile); } else if (e.ClickedItem == contextMenuStrip1.Items[changePropertyValueMenuItem.Name]) { // Change property value if (currentContextFile.getStatus().Type == SWFileStatusType.FILE_MISSING) { MessageBox.Show("Changing property value of missing file!", "", MessageBoxButtons.OK, MessageBoxIcon.Warning); } ChangePropertyForm cpf = new ChangePropertyForm(this.project, this.currentContextFile); DialogResult r = cpf.ShowDialog(); if (r == DialogResult.OK && currentContextFile.getStatus().Type != SWFileStatusType.FILE_MISSING) { this.currentContextFile.setName(cpf.valueTextBox.Text.Trim()); } else if (currentContextFile.getStatus().Type == SWFileStatusType.FILE_MISSING) { this.currentContextFile.name = cpf.valueTextBox.Text.Trim(); this.updateFile(this.currentContextFile); } } else if (e.ClickedItem == contextMenuStrip1.Items[removeToolStripMenuItem.Name]) { // Remove DialogResult r = MessageBox.Show(String.Format("Remove file {0} ?", currentContextFile.file), "", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (r == DialogResult.No) { return; } if (currentContextFile.getStatus().Type != SWFileStatusType.FILE_MISSING) { r = MessageBox.Show(String.Format("Remove file {0} also from disk?", currentContextFile.file), "", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (r == DialogResult.Yes) { currentContextFile.removeFromDisk(); } } currentContextFile.removeFromProject(); update(); } else if (e.ClickedItem == contextMenuStrip1.Items[chooseFileManuallyToolStripMenuItem.Name]) { // Choose manually chooseFile(currentContextFile); } else if (e.ClickedItem == contextMenuStrip1.Items[showEmptyRowsToolStripMenuItem.Name]) { // Show empty rows if (showEmptyRowsToolStripMenuItem.Checked) { showEmptyRowsToolStripMenuItem.Checked = false; } else { showEmptyRowsToolStripMenuItem.Checked = true; } Settings.Default.showEmptyRows = showEmptyRowsToolStripMenuItem.Checked; this.update(); } // Re-disable menus that should be disabled by default contextMenuStrip1.Items[chooseFileManuallyToolStripMenuItem.Name].Enabled = false; }