private void dataGridViewFilter_CellValueChanged(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex < 0) { return; } if (e.ColumnIndex == 0) { DataGridViewCell operationCell = dataGridViewFilter.Rows[e.RowIndex].Cells[1]; object oldSelectedItem = operationCell.Value; operationCell.Value = string.Empty; DataGridViewCell fieldCell = dataGridViewFilter.Rows[e.RowIndex].Cells[0]; string filterName = fieldCell.Value.ToString(); IILStubEventFilterDef filterDef = ILStubEventFilterManager.GetInstance().GetFilterDef(filterName); if (filterDef != null) { List <string> operations = filterDef.Operations; DataGridViewComboBoxCell comboBoxOperationCell = operationCell as DataGridViewComboBoxCell; comboBoxOperationCell.Items.Clear(); comboBoxOperationCell.Items.AddRange(operations.ToArray()); if (oldSelectedItem != null && comboBoxOperationCell.Items.Contains(oldSelectedItem)) { comboBoxOperationCell.Value = oldSelectedItem; } } } }
private void MainForm_Load(object sender, EventArgs e) { ILStubDiagnosticSessionController controller = ILStubDiagnosticSessionController.GetInstance(); controller.EnableKernelSession(); controller.ILStubEventHandler += ILStubEventListener; // For ILStubEvents DataGridView dataGridViewILStubEvents.AutoGenerateColumns = false; for (int i = 0; i < columnNames.Length; i++) { dataGridViewILStubEvents.Columns.Add(columnNames[i], columnNames[i]); dataGridViewILStubEvents.Columns[i].DataPropertyName = dataPropertyNames[i]; dataGridViewILStubEvents.Columns[i].Visible = false; } // Add the last padding column. dataGridViewILStubEvents.Columns.Add("", ""); dataGridViewILStubEvents.Columns[columnNames.Length].Visible = true; dataGridViewILStubEvents.Columns[columnNames.Length].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; // Bind to the event list. dataGridViewILStubEvents.DataSource = m_viewEventList; // For Filter DataGridView DataGridViewComboBoxColumn fieldColumn = dataGridViewFilter.Columns[0] as DataGridViewComboBoxColumn; fieldColumn.Items.Clear(); List <IILStubEventFilterDef> filterDefList = ILStubEventFilterManager.GetInstance().FilterDefList; for (int i = 0; i < filterDefList.Count; i++) { fieldColumn.Items.Add(filterDefList[i].FilterName); } UpdateFilterMessage(); // For contextMenuStripOnEventsColumnHeader for (int i = 0; i < columnNames.Length; i++) { ToolStripMenuItem item = new ToolStripMenuItem(); item.Text = columnNames[i]; item.CheckOnClick = true; item.Click += ItemOfContextMenuStripOnEventsColumnHeader_Click; contextMenuStripOnEventsColumnHeader.Items.Add(item); if (initialColumnCheckedStatus[i]) { item.PerformClick(); } } // We can not hide the first column. contextMenuStripOnEventsColumnHeader.Items[0].Enabled = false; }
private void toolStripButtonRefresh_Click(object sender, EventArgs e) { try { this.Cursor = Cursors.WaitCursor; ILStubEventFilterList listFilter = new ILStubEventFilterList(); int rowCount = dataGridViewFilter.Rows.Count; for (int i = 0; i < rowCount; i++) { DataGridViewRow dataGridViewRow = dataGridViewFilter.Rows[i]; if (dataGridViewRow.IsNewRow) { continue; } if (dataGridViewRow.Cells[0].Value == null) { MessageBox.Show("The field of row " + (i + 1) + " is empty."); return; } string filterName = dataGridViewRow.Cells[0].Value.ToString(); IILStubEventFilterDef filterDef = ILStubEventFilterManager.GetInstance().GetFilterDef(filterName); Debug.Assert(filterDef != null); if (dataGridViewRow.Cells[1].Value == null) { MessageBox.Show("The operation of row '" + filterName + "' is empty."); return; } string operaton = dataGridViewRow.Cells[1].Value.ToString(); if (dataGridViewRow.Cells[2].Value == null) { MessageBox.Show("The value of row '" + filterName + "' is empty."); return; } string value = dataGridViewRow.Cells[2].Value.ToString(); try { IILStubEventFilter filter = filterDef.CreateFilter(operaton, value); listFilter.Add(filter); } catch (FilterOperationIsNullException ex) { MessageBox.Show(String.Format( Resource.ResourceManager.GetString("Wrn_FilterOperationIsNull"), ex.FilterName)); return; } catch (FilterOperationNotSupportException ex) { MessageBox.Show(String.Format( Resource.ResourceManager.GetString("Wrn_FilterOperationNotSupport"), ex.Operation, ex.FilterName)); return; } catch (FilterValueIsNullException ex) { MessageBox.Show(String.Format( Resource.ResourceManager.GetString("Wrn_FilterValueIsNull"), ex.FilterName)); return; } catch (FilterValueNotIntegerException ex) { MessageBox.Show(String.Format( Resource.ResourceManager.GetString("Wrn_FilterValueNotInteger"), ex.Value, ex.FilterName)); return; } } m_filterList = listFilter; UpdateFilterMessage(); UpdateEventList(); } finally { this.Cursor = Cursors.Default; } }