- Timestamp:
- 07/06/11 17:01:30 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Optimization.Views/3.3/ExperimentTreeView.cs
r6513 r6517 498 498 #region control events 499 499 private void optimizerTreeView_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e) { 500 if (rightClickOccured) return; 500 501 if (e.X < e.Node.Bounds.Left || e.X > e.Node.Bounds.Right) return; 501 optimizerTreeView.SelectedNode.Toggle();502 e.Node.Toggle(); 502 503 IOptimizer optimizer = (IOptimizer)e.Node.Tag; 503 504 MainFormManager.MainForm.ShowContent(optimizer); … … 511 512 private void optimizerTreeView_MouseDown(object sender, MouseEventArgs e) { 512 513 // enables deselection of treeNodes 513 if (e.Button != System.Windows.Forms.MouseButtons.Left) return;514 if (e.Button != MouseButtons.Right) rightClickOccured = false; 514 515 if (optimizerTreeView.SelectedNode == null) return; 515 516 Point coordinates = new Point(e.X, e.Y); … … 522 523 } 523 524 525 524 526 private void optimizerTreeView_KeyDown(object sender, KeyEventArgs e) { 525 527 if (ReadOnly) return; … … 542 544 UpdateDetailsViewHost(); 543 545 RebuildImageList(); 546 } 547 548 private bool rightClickOccured = true; 549 private TreeNode toolStripMenuNode = null; 550 private void optimizerTreeView_RightClick(object sender, EventArgs e) { 551 rightClickOccured = true; 552 Point coordinates = optimizerTreeView.PointToClient(Cursor.Position); 553 toolStripMenuNode = optimizerTreeView.GetNodeAt(coordinates); 554 555 if (toolStripMenuNode != null && coordinates.X >= toolStripMenuNode.Bounds.Left && coordinates.X <= toolStripMenuNode.Bounds.Right) { 556 optimizerTreeView.SelectedNode = toolStripMenuNode; 557 detailsViewHost.Content = (IContent)toolStripMenuNode.Tag; 558 SetEnabledStateOfControls(); 559 560 ExpandToolStripMenuItem.Enabled = !toolStripMenuNode.IsExpanded && toolStripMenuNode.Nodes.Count > 0; 561 ExpandToolStripMenuItem.Visible = !toolStripMenuNode.IsExpanded && toolStripMenuNode.Nodes.Count > 0; 562 CollapseToolStripMenuItem.Enabled = toolStripMenuNode.IsExpanded; 563 CollapseToolStripMenuItem.Visible = toolStripMenuNode.IsExpanded; 564 if (contextMenuStrip.Items.Cast<ToolStripMenuItem>().Any(item => item.Enabled)) 565 contextMenuStrip.Show(Cursor.Position); 566 } 567 } 568 569 private void ExpandToolStripMenuItem_Click(object sender, EventArgs e) { 570 if (toolStripMenuNode != null) toolStripMenuNode.ExpandAll(); 571 } 572 private void CollapseToolStripMenuItem_Click(object sender, EventArgs e) { 573 if (toolStripMenuNode != null) toolStripMenuNode.Collapse(); 544 574 } 545 575 … … 689 719 } 690 720 #endregion 721 722 723 public sealed class CustomTreeView : System.Windows.Forms.TreeView { 724 protected override void WndProc(ref System.Windows.Forms.Message m) { 725 const int WM_RBUTTONDOWN = 0x204; 726 if (m.Msg == WM_RBUTTONDOWN) { 727 //Raise your custom event right click event to prevent node highlighting 728 OnRightClick(); 729 return; 730 } 731 base.WndProc(ref m); 732 } 733 734 public event EventHandler RightClick; 735 private void OnRightClick() { 736 var handler = RightClick; 737 if (handler != null) RightClick(this, EventArgs.Empty); 738 } 739 } 691 740 } 692 741 }
Note: See TracChangeset
for help on using the changeset viewer.