F: Wie kann man, den in einer einzelnen Tabelle oder Zelle enthaltenen Text direkt editieren?
Wir haben einige Tabellen, an denen wir keine Veränderungen erlauben und andere, an denen wir lediglich die direkte Text-Editierung der Zellen-Werte ohne die Beschriftung erlauben möchten.
A: Sie können dies mittels der Events Diagram.NodeTextEditing und Diagram.CellTextEditing erreichen. Setzen Sie e.Cancel auf "true", um die Text- Editierung zu verhindern.
F: Wie kann ich mit dem Mausrad im Diagramm scrollen und zoomen?
A: YSie können das Scrolling mit dem Mausrad folgendermaßen implementieren:
private void Form1_Load(object sender, System.EventArgs e) { diagramView.MouseWheel += new MouseEventHandler(diagramView_MouseWheel); } void diagramView_MouseWheel(object sender, MouseEventArgs args) { diagramView fcSender = sender as diagramView; float newScrollY = fcSender.ScrollY - args.Delta / 50; if (newScrollY > fcSender.DocExtents.Top) fcSender.ScrollY = newScrollY; }Dieses Event wird von der Control-Klasse vererbt, ist aber in der IDE-Liste nicht sichtbar. Sie müssen selbst einen Handler hinzufügen. Der hier angegebene Handler scrollt das Dokument. Wenn Sie es wünschen, können Sie dies auf Zoom-In/Zoom-Out umstellen, indem Sie die Eigenschaft DiagramView.ZoomFactor verändern.
F: Ich möchte alles in dem Diagramm selektieren und die Selektierung abwärts für einen bestimmten Betrag von dx und dy verschieben. Gibt es eine Möglichkeit, die gesamte Selektierung leicht zu verschieben?
A: Bei dem Verschieben eines Knotens werden auch die Endpunkte der Verbindung verschoben, so dass die einfachste Lösung das Verschieben aller Items in zwei Phasen ist. Zuerst verschieben Sie alle selektierten Knoten - dabei werden auch die Endpunkte der Verbindungen versetzt. Dann versetzen Sie alle Kontrollpunkte von allen selektierten Verbindungen, ausgenommen die Endpunkte (die Endpunkte wurden mit den Knoten verschoben).
F: Ich verwende ein ControlNode-Objekt, in dem ich einen TextEditor habe. Wie kann ich Neuzeichnen während Größenänderung und Verschiebung realisieren?
A: Windows sendet WM_PAINT Nachrichten zu Kontrollen, nur wenn es keine anderen Meldungen in der Nachrichtenschlange gibt, so dass das gehostete Steuerelement nicht neu gezeichnet wird, bevor Sie aufhören, die Maus zu bewegen. Sie können das Neuzeichnen des Hosted Controls durch den Aufruf seiner Refresh Methode von dem NodeModifying Event-Handler hervorrufen.
F: Ich habe die FlowChart Fläche in 4 Lanes aufgeteilt. Gibt es ein Ereignis, das bei einem Linksklick auf RowHeaders auftritt?
A: Sie können das Ereignis Clicked behandeln und die Methode GetHeaderFromPoint aufrufen, um herauszufinden, ob ein Header angeklickt wurde.