示例#1
0
        private void SearchNextNode()
        {
            if (_searchState == null)
            {
                return;
            }

            SearchWorker worker = new SearchWorker(_searchState);

            Thread t = new Thread(new ThreadStart(worker.Run));

            t.IsBackground = true;
            t.Start();

            _searchForm = new CancelSearchForm();
            if (_searchForm.ShowDialog(this) == DialogResult.Cancel)
            {
                worker.Cancel();
                _searchState = null;

                UpdateUI();
            }

            t.Join();
        }
示例#2
0
        private void SearchNode(TreeNode node)
        {
            if (node == null || !(node.Tag is DataNode))
            {
                return;
            }

            DataNode dataNode = node.Tag as DataNode;

            if (!dataNode.CanSearchNode)
            {
                return;
            }

            Find form = new Find();

            if (form.ShowDialog() != DialogResult.OK)
            {
                return;
            }

            _searchState = new SearchStateWin(this)
            {
                RootNode         = dataNode,
                SearchName       = form.NameToken,
                SearchValue      = form.ValueToken,
                DiscoverCallback = SearchDiscoveryCallback,
                CollapseCallback = SearchCollapseCallback,
                EndCallback      = SearchEndCallback,
            };

            SearchNextNode();
        }
示例#3
0
        public void SearchEndCallback(DataNode node)
        {
            if (_searchForm != null)
            {
                _searchForm.DialogResult = DialogResult.OK;
                _searchForm = null;
            }

            _searchState = null;
            UpdateUI();

            MessageBox.Show("End of results");
        }
示例#4
0
        private void SearchNextNode()
        {
            if (_searchState == null)
                return;

            SearchWorker worker = new SearchWorker(_searchState);

            Thread t = new Thread(new ThreadStart(worker.Run));
            t.IsBackground = true;
            t.Start();

            _searchForm = new CancelSearchForm();
            if (_searchForm.ShowDialog(this) == DialogResult.Cancel) {
                worker.Cancel();
                _searchState = null;
            }

            t.Join();
        }
示例#5
0
        private void SearchNode(TreeNode node)
        {
            if (node == null || !(node.Tag is DataNode))
                return;

            DataNode dataNode = node.Tag as DataNode;
            if (!dataNode.CanSearchNode)
                return;

            Find form = new Find();
            if (form.ShowDialog() != DialogResult.OK)
                return;

            _searchState = new SearchStateWin(this) {
                RootNode = dataNode,
                SearchName = form.NameToken,
                SearchValue = form.ValueToken,
                DiscoverCallback = SearchDiscoveryCallback,
                CollapseCallback = SearchCollapseCallback,
                EndCallback = SearchEndCallback,
            };

            SearchNextNode();
        }
示例#6
0
        public void SearchEndCallback (DataNode node)
        {
            if (_searchForm != null) {
                _searchForm.DialogResult = DialogResult.OK;
                _searchForm = null;
            }

            _searchState = null;
            UpdateUI();

            MessageBox.Show("End of results");
        }