private void lvwMessages_SelectedValueChanged(object sender, EventArgs e) { if (suspendSelection) { return; } FinishEdit(); if (lvwMessages.SelectedItems.Count == 0) { propertyGrid.SelectedObjects = null; } else { List <FormMain.MessageBreakpoint> watchs = new List <FormMain.MessageBreakpoint>(); for (int i = 0; i < lvwMessages.SelectedItems.Count; i++) { NativeMethods.Msgs msg = (NativeMethods.Msgs)lvwMessages.SelectedItems[i]; if (_Watchs.ContainsKey(msg)) { watchs.Add(_Watchs[msg]); } else { FormMain.MessageBreakpoint mwatch = new FormMain.MessageBreakpoint(); mwatch.Msg = msg; mwatch.ModifiedMsg = msg; mwatch.Action = FormMain.BreakpointAction.None; _Watchs.Add(msg, mwatch); watchs.Add(mwatch); } } propertyGrid.SelectedObjects = watchs.ToArray(); } }
private void btnLoad_Click(object sender, EventArgs e) { using (OpenFileDialog dialog = new OpenFileDialog()) { dialog.Filter = Properties.Resources.BreakpointsFile; if (dialog.ShowDialog() == DialogResult.OK) { FileStream stream = null; BinaryReader reader = null; lvwMessages.SelectedItems.Clear(); try { stream = File.Open(dialog.FileName, FileMode.Open); reader = new BinaryReader(stream); int count = reader.ReadInt32(); _Watchs.Clear(); for (int i = 0; i < count; i++) { FormMain.MessageBreakpoint watch = new FormMain.MessageBreakpoint(); watch.Msg = (NativeMethods.Msgs)reader.ReadInt32(); watch.Action = (FormMain.BreakpointAction)reader.ReadInt32(); watch.ModifiedMsg = (NativeMethods.Msgs)reader.ReadInt32(); watch.WParam = new FormMain.MessageParam(reader.ReadInt32()); watch.LParam = new FormMain.MessageParam(reader.ReadInt32()); watch.Modifications = (FormMain.ModifiyingSections)reader.ReadInt32(); _Watchs.Add(watch.Msg, watch); } lvwMessages.Invalidate(); } finally { if (stream != null) { stream.Close(); } if (reader != null) { reader.Close(); } } } } }