سلام!
در اين كامپوننت CodeProject برنامه نويس از يه PictureBox استفاده كرده با تعيين مختصات HotSpot ها و بهره گيري از رويداد هاي خود جعبه ي تصوير، يك ImageMap ايجاد كرده.
براي استفاده از اين كامپوننت اول بايد اون رو وارد ToolBox كنيد و بعد كنترل را روي فرم قرار بديد؛ مثلا" با اسم imageMap1
خاصيت imageMap1.Image براي تعيين تصوير imagemap هستش.
مثل ASP.Net سه نوع HotSpot ميشه براي كنترل تعريف كرد:
اون اعدادي رو كه مشاهده مي كنيد حدود نواحي رو مشخص مي كنه: اولي مستطيل دومي چند ضلعي (چون مختصات سه نقطه داده شده، ميشه مثلث) و آخري مربوط به دايره هست. نوشته هاي داخل گيومه هم فكر براي نام ناحيه باشه (Key).کد:this.imageMap1.AddRectangle("Rectangle", 140, 20, 280, 60); this.imageMap1.AddPolygon("Polygon", new Point[] {new Point(100, 100), new Point(180, 80), new Point(200, 140)}); this.imageMap1.AddElipse("Ellipse", 80, 100, 60);
با جراي اين دستورات ناحيه ها ساخته ميشه و به هر كدوم يه انديس تعلق مي گيره.
هر وقت روي هر ناحيه كليك بشه، رويداد RegionClick رخ ميده كه مي تونيد به اون مثله هر كنترل ديگه دسترسي داشته باشيد. با وقوع رويداد مقادير انديس و نام (Index & Key) مربوط به ناحيه ي كليك شده برگردونده ميشه.
رويداد MouseClick رو براي يه فرم در نظر بگيريد. وقتي اين رويداد رخ ميده براي فهميدن مختصات نقطه كليك شده بايد مقدار e.Location (بهش مي گم EventArg) رو بخونيد. حالا RegionClick اين imagemap هم يه EventArg داره كه با اون مي تونيد مشخصه HotSpot كليك شده رو دريافت كنيد. البته چون پروژه رو خوب بررسي نكردم، 100% مطمئن نيستم.
با سپاس
آرمين






پاسخ با نقل قول
Bookmarks