|
Dieses Beispielverwendet die Komponente CtrlRectangle. Sie wird bei einem Mousedown "eingeloggt" und hört dann alle Mouseevents mit.
Sein MouseUp Event wird mit MarcRect_MouseUp belegt. Dort wird eine Markierungsliste verwaltet, die die Tags der gezeichneten Wüferl enthält, was für die Ausgabe der Farben benötigt wird.
Der Selector stellt die Objekte innerhalb von MarcRect.Rectangle in die SnappItemsliste.
Mit der checkBox können Sie umschalten zwischen Navigieren und Selektieren.
using Drawing3d;
using System;
using System.Drawing;
using System.Windows.Forms;
using System.Collections.Generic;
namespace Sample
{
public partial class Form1 : Form
{
MyDevice Device = new MyDevice();
public Form1()
{
InitializeComponent();
Device.WinControl = this;
}
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
Device.SelectModus = checkBox1.Checked;
}
}
public class MyDevice:OpenGlDevice
{
internal bool SelectModus = true;
CtrlRectangle MarcRect = new CtrlRectangle();
protected override void OnCreated()
{
base.OnCreated();
MarcRect.MouseUp += MarcRect_MouseUp;
}
private void MarcRect_MouseUp(object sender, Drawing3d.HandledMouseEventArgs e)
{
Selector.SnapInside(MarcRect.Rectangle);
if (Form.ModifierKeys != Keys.Shift) MarkList.Clear();
for (int i = 0; i < SnappItems.Count; i++)
{
if (IndexOfTag(SnappItems[i].Tag) < 0)
MarkList.Add(SnappItems[i].Tag);
}
e.Handled = true;
MarcRect.OnLogout(false);
}
List
|
|