Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A találattesztelés célja annak meghatározása, hogy a kurzor egy adott objektumon, például egy ikonon vagy egy gombon van-e.
példa
Az alábbi példa egy plusz alakú régiót hoz létre két négyszögletes régió összevonásával. Tegyük fel, hogy a point változó tárolja a legutóbbi kattintás helyét. A kód ellenőrzi, hogy point a plusz alakú régióban van-e. Ha a pont a régióban van (találat), akkor a régiót átlátszatlan piros ecsettel töltjük ki. Ellenkező esetben a régió félig átlátszó piros ecsettel van kitöltve.
Point point = new Point(60, 10);
// Assume that the variable "point" contains the location of the
// most recent mouse click.
// To simulate a hit, assign (60, 10) to point.
// To simulate a miss, assign (0, 0) to point.
SolidBrush solidBrush = new SolidBrush(Color.Black);
Region region1 = new Region(new Rectangle(50, 0, 50, 150));
Region region2 = new Region(new Rectangle(0, 50, 150, 50));
// Create a plus-shaped region by forming the union of region1 and
// region2.
// The union replaces region1.
region1.Union(region2);
if (region1.IsVisible(point, e.Graphics))
{
// The point is in the region. Use an opaque brush.
solidBrush.Color = Color.FromArgb(255, 255, 0, 0);
}
else
{
// The point is not in the region. Use a semitransparent brush.
solidBrush.Color = Color.FromArgb(64, 255, 0, 0);
}
e.Graphics.FillRegion(solidBrush, region1);
Dim point As New Point(60, 10)
' Assume that the variable "point" contains the location of the
' most recent mouse click.
' To simulate a hit, assign (60, 10) to point.
' To simulate a miss, assign (0, 0) to point.
Dim solidBrush As New SolidBrush(Color.Black)
Dim region1 As New [Region](New Rectangle(50, 0, 50, 150))
Dim region2 As New [Region](New Rectangle(0, 50, 150, 50))
' Create a plus-shaped region by forming the union of region1 and region2.
' The union replaces region1.
region1.Union(region2)
If region1.IsVisible(point, e.Graphics) Then
' The point is in the region. Use an opaque brush.
solidBrush.Color = Color.FromArgb(255, 255, 0, 0)
Else
' The point is not in the region. Use a semitransparent brush.
solidBrush.Color = Color.FromArgb(64, 255, 0, 0)
End If
e.Graphics.FillRegion(solidBrush, region1)
A kód összeállítása
Az előző példa a Windows Formshoz készült, és PaintEventArgseszükséges hozzá , amely a PaintEventHandlerparamétere.
Lásd még
.NET Desktop feedback