private void treeView_LostFocus(object sender, EventArgs e) { if (_autoCompleteForm != null) { _autoCompleteForm.Dispose(); _autoCompleteForm = null; } }
private void _autoCompleteForm_CmdKey(object sender, CmdKeyEventArgs e) { switch (e.KeyData) { case Keys.Enter: var treeView = (EntityPathSelectorTreeView)((System.Windows.Forms.Form)sender).Controls[0]; SetSelectedEntity(treeView.GetSelectedNodePath()); e.Handled = true; break; case Keys.Escape: _autoCompleteForm.Dispose(); _autoCompleteForm = null; e.Handled = true; break; } }
private void SetSelectedEntity(EntityMemberPath path) { if (path.Count == 0) { _selectedEntity = _entity; _path.Text = HumanText.GetEntityName(_selectedEntity); } else { _selectedEntity = _api.GetEntitySchema(((EntityForeign)path.Tail).LinkTable); _path.Text = HumanText.GetEntityMemberPath(path); } _availableFields.BeginUpdate(); _availableFields.Items.Clear(); foreach (var member in _selectedEntity.Members.OrderBy(HumanText.GetMemberName)) { var memberPath = new EntityMemberPath(path, member); if ( (member is EntityField || member is EntityCalculatedField) && _reportFields.Items.Cast <ListViewItem>().All(p => !p.Tag.Equals(memberPath)) ) { _availableFields.Items.Add(new ListViewItem(HumanText.GetMemberName(member)) { Tag = memberPath }); } } _availableFields.EndUpdate(); UpdateEnabled(); if (_autoCompleteForm != null) { _autoCompleteForm.Dispose(); _autoCompleteForm = null; } }
private void selectPath_Click(object sender, EventArgs e) { _path.Focus(); if (_autoCompleteForm == null) { var treeView = BuildPathSelectorTreeView(); _autoCompleteForm = new AutoCompleteForm { Owner = _path, Font = SystemFonts.MessageBoxFont, Controls = { treeView } }; _autoCompleteForm.CmdKey += _autoCompleteForm_CmdKey; _autoCompleteForm.Shown += (s, ea) => treeView.Focus(); } _autoCompleteForm.Show(); }