private void lstItems_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e) { if (!e.IsSelected) return; QbItemEditorBase editor; try { SendMessage(gboEdit.Handle, WM_SETREDRAW, 0, IntPtr.Zero); clearEditor(); QbItemBase itm = e.Item.Tag as QbItemBase; if (itm == null) return; if (itm is QbItemScript) { editor = new ScriptEditor(); ((ScriptEditor)editor).SelectedTabIndex = AppState.ScriptActiveTab; } else if ((itm.Format == QbFormat.ArrayPointer || itm.Format == QbFormat.ArrayValue) && itm.QbItemType != QbItemType.ArrayStruct && itm.QbItemType != QbItemType.ArrayArray) editor = new SimpleArrayEditor(); else editor = new GenericQbItemEditor(); editor.Updated += new UpdatedEventHandler(editor_Updated); editor.Error += new ErrorEventHandler(editor_Error); editor.QbItem = itm; editor.Left = 3; editor.Top = 14; editor.Width = gboEdit.Width - 6; editor.Height = gboEdit.Height - 17; editor.Anchor = AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top; gboEdit.Controls.Add(editor); } finally { SendMessage(gboEdit.Handle, WM_SETREDRAW, 1, IntPtr.Zero); gboEdit.Refresh(); } }