示例#1
0
 private void treeView_LostFocus(object sender, EventArgs e)
 {
     if (_autoCompleteForm != null)
     {
         _autoCompleteForm.Dispose();
         _autoCompleteForm = null;
     }
 }
示例#2
0
        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;
            }
        }
示例#3
0
        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;
            }
        }
示例#4
0
        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();
        }