public static DataViewState Save(DataView view) { DataViewState result = new DataViewState(); TreeNode node = view.StructTreeView.SelectedNode; while(node != null) { result._selectedIndices.Insert(0, node.Index); node = node.Parent; } return result; }
public MainForm() { InitializeComponent(); _dataView = new DataView(); _dataView.CellSelected += _dataView_OnCellSelected; _dataView.Dock = DockStyle.Fill; splitContainer2.Panel2.Controls.Add(_dataView); Application.AddMessageFilter(new WheelMessageFilter()); string lastStrsFile = _settings.LastStrsFile; if (lastStrsFile != null && lastStrsFile.Length > 0) LoadStructsFile(lastStrsFile); _structEditControl.Document.DocumentChanged += delegate { _structuresModified = true; }; _dataView.HexDump.StatusTextChanged += (sender, e) => tslSelection.Text = e.Text; RestoreFormPosition(); _settingsLoaded = true; }
public void Restore(DataView view) { if (_selectedIndices.Count > 0) { TreeNodeCollection nodeCollection = view.StructTreeView.Nodes; TreeNode node; TreeNode nodeToSelect = null; foreach(int index in _selectedIndices) { node = LoadNode(nodeCollection, index); if (node == null) break; nodeToSelect = node; node.Expand(); nodeCollection = node.Nodes; } view.StructTreeView.SelectedNode = nodeToSelect; } }