public void AddField(IListViewField Field) { ListViewFieldAdapter Adapter = new ListViewFieldAdapter(); Adapter.Field = Field; Adapter.Column = new ColumnHeader(); Adapter.Column.Text = Field.DisplayName; Adapter.Column.Name = Field.GetType().Name; int field_width = Field.InitialWidth; FieldWidthStyle width_style = Field.InitialWidthStyle; ListViewColumnSettings field_settings = null; if (mSettings != null) { field_settings = mSettings.GetColumnSettings( Adapter.Column, Field.InitialWidthStyle, Field.InitialWidth); field_width = field_settings.Width; width_style = field_settings.WidthStyle; } Adapter.Column.Width = ComputeColumnWidth(width_style, field_width); mFields.Add(Adapter); if (field_settings == null || field_settings.Visible) { Adapter.Column.DisplayIndex = mFields.Count+1; Columns.Add(Adapter.Column); } }
void item_CheckStateChanged(object sender, EventArgs e) { // A column was chosen to be either hidden or displayed. ToolStripMenuItem item = (ToolStripMenuItem)sender; ToolStripItemTag tag = (ToolStripItemTag)item.Tag; ColumnHeader column_to_change = tag.Header; // Find the corresponding field so we can update its visibility state. ListViewFieldAdapter Field = mFields.Find(x => x.Column == column_to_change); if (item.CheckState == CheckState.Checked) { int new_index = DetermineIndexForInsertingColumn(tag.Header); Columns.Insert(new_index, tag.Header); tag.Header.DisplayIndex = new_index; tag.Header.Width = tag.LastWidth; if (mSettings != null) { mSettings.Columns[column_to_change.Name].Visible = true; } } else { tag.LastWidth = tag.Header.Width; Columns.Remove(tag.Header); if (mSettings != null) { mSettings.Columns[column_to_change.Name].Visible = false; } } }
public void AddField(IListViewField Field) { ListViewFieldAdapter Adapter = new ListViewFieldAdapter(); Adapter.Field = Field; Adapter.Column = new ColumnHeader(); Adapter.Column.Text = Field.DisplayName; Adapter.Column.Name = Field.GetType().Name; int field_width = Field.InitialWidth; FieldWidthStyle width_style = Field.InitialWidthStyle; ListViewColumnSettings field_settings = null; if (mSettings != null) { field_settings = mSettings.GetColumnSettings( Adapter.Column, Field.InitialWidthStyle, Field.InitialWidth); field_width = field_settings.Width; width_style = field_settings.WidthStyle; } Adapter.Column.Width = ComputeColumnWidth(width_style, field_width); mFields.Add(Adapter); if (field_settings == null || field_settings.Visible) { Adapter.Column.DisplayIndex = mFields.Count + 1; Columns.Add(Adapter.Column); } }
private void ExportRows(int[] Rows) { try { SaveFileDialog dialog = new SaveFileDialog(); dialog.Filter = "CSV files (*.csv)|*.csv"; dialog.FilterIndex = 0; dialog.RestoreDirectory = false; if (dialog.ShowDialog() == DialogResult.OK) { using (Stream s = dialog.OpenFile()) using (StreamWriter w = new StreamWriter(s)) { List <ListViewFieldAdapter> visible_fields = mFields.Where(x => x.Column.DisplayIndex != -1).ToList(); for (int i = 0; i < visible_fields.Count; ++i) { w.Write(visible_fields[i].Field.DisplayName); if (i < visible_fields.Count - 1) { w.Write(","); } } w.Write("\n"); foreach (int row_index in Rows) { object item = mBinding.RetrieveItem(row_index); List <string> fields = new List <string>(); for (int i = 0; i < visible_fields.Count; ++i) { ListViewFieldAdapter field = visible_fields[i]; string value = null; // This is a bit of a hack, but Excel can't display the star character. if (field.Field is ItemRarityField) { value = field.Field.AltFormat(item); } else { value = field.Field.Format(item); } // Make sure that individual fields don't contain commas. w.Write(value.Replace(',', ' ')); if (i < visible_fields.Count - 1) { w.Write(","); } } w.Write("\n"); } } } MessageBox.Show(String.Format("{0} rows successfully exported.", Rows.Length)); } catch (Exception ex) { MessageBox.Show("FFRK Inspector encountered an error while exporting the data. " + ex.Message); } }
void ListViewEx_ColumnClick(object sender, ColumnClickEventArgs e) { ColumnHeader clicked_column = Columns[e.Column]; if (clicked_column == mCurrentSortColumn) { if (mCurrentSortOrder == SortOrder.Ascending) { mCurrentSortOrder = SortOrder.Descending; } else if (mCurrentSortOrder == SortOrder.Descending) { mCurrentSortOrder = SortOrder.Ascending; } } else { mCurrentSortColumn = clicked_column; mCurrentSortOrder = SortOrder.Ascending; } ListViewFieldAdapter Field = mFields.Find(x => x.Column == clicked_column); switch (mCurrentSortOrder) { case SortOrder.Ascending: mBinding.SortData(Field.Field.Compare); Invalidate(); break; case SortOrder.Descending: mBinding.SortData((x, y) => - Field.Field.Compare(x, y)); Invalidate(); break; } }