ImageMap.Click イベント
アセンブリ: System.Web (system.web.dll 内)
構文
public: event ImageMapEventHandler^ Click { void add (ImageMapEventHandler^ value); void remove (ImageMapEventHandler^ value); }
Click イベントは、ImageMap コントロールの HotSpot オブジェクトがクリックされたときに発生します。HotSpot で Click イベントが発生するようにするには、最初に ImageMap コントロールの HotSpotMode プロパティか HotSpot オブジェクトの HotSpotMode プロパティに HotSpotMode.Postback を設定する必要があります。
ポストバックの HotSpot がクリックされたときに実行されるアクションをプログラムによって制御するには、イベント発生時に実行するコードを含んだ Click イベントのイベント ハンドラを実装します。
イベントが発生すると、デリゲートを使用してイベント ハンドラが呼び出されます。イベント処理の詳細については、「イベントの利用」を参照してください。
2 つの RectangleHotSpot オブジェクトを持つ ImageMap コントロールを作成する方法を次のコード例に示します。ImageMap.HotSpotMode プロパティは HotSpotMode.PostBack に設定されます。この場合、ユーザーがいずれかのホット スポット領域をクリックするたびに、ページがサーバーにポストバックされます。VoteMap_Clicked イベント ハンドラは、ImageMap コントロールのクリック イベントを処理します。この例を正常に動作させるには、ImageUrl プロパティにユーザー独自のイメージを提供し、アプリケーションがそのイメージを見つけられるように、イメージへのパスを適切に更新する必要があります。
<%@ Page Language="VB" %> <script runat="server"> Sub VoteMap_Clicked(ByVal sender As Object, ByVal e As ImageMapEventArgs) Dim coordinates As String Dim hotSpotType As String Dim yescount As Integer Dim nocount As Integer If (ViewState("yescount") IsNot Nothing) Then yescount = Convert.ToInt32(ViewState("yescount")) Else yescount = 0 End If If (ViewState("nocount") IsNot Nothing) Then nocount = Convert.ToInt32(ViewState("nocount")) Else nocount = 0 End If ' When a user clicks the "Yes" hot spot, ' display the hot spot's name and coordinates. If (e.PostBackValue.Contains("Yes")) Then yescount += 1 coordinates = Vote.HotSpots(0).GetCoordinates() hotSpotType = Vote.HotSpots(0).ToString() Message1.Text = "You selected " & hotSpotType & " " & e.PostBackValue & ".<br>" & _ "The coordinates are " & coordinates & ".<br>" & _ "The current vote count is " & yescount.ToString() & _ " yes votes and " & nocount.ToString() & " no votes." ' When a user clicks the "No" hot spot, ' display the hot spot's name and coordinates. ElseIf (e.PostBackValue.Contains("No")) Then nocount += 1 coordinates = Vote.HotSpots.Item(1).GetCoordinates() hotSpotType = Vote.HotSpots.Item(1).ToString() Message1.Text = "You selected " & hotSpotType & " " & e.PostBackValue & ".<br>" & _ "The coordinates are " & coordinates & ".<br>" & _ "The current vote count is " & yescount.ToString() & _ " yes votes and " & nocount.ToString() & " no votes." Else Message1.Text = "You did not click a valid hot spot region." End If ViewState("yescount") = yescount ViewState("nocount") = nocount End Sub </script> <html> <head id="Head1" runat="server"> <title>ImageMap Class Post Back Example</title> </head> <body> <form id="Form1" runat="server"> <h3>ImageMap Class Post Back Example</h3> <asp:imagemap id="Vote" imageurl="Images/VoteImage.jpg" width="400" height="200" alternatetext="Vote Yes or No" hotspotmode="PostBack" onclick="VoteMap_Clicked" runat="Server"> <asp:RectangleHotSpot top="0" left="0" bottom="200" right="200" postbackvalue="Yes" alternatetext="Vote yes"> </asp:RectangleHotSpot> <asp:RectangleHotSpot top="0" left="201" bottom="200" right="400" postbackvalue="No" alternatetext="Vote no"> </asp:RectangleHotSpot> </asp:imagemap> <br /><br /> <asp:label id="Message1" runat="Server"> </asp:label> </form> </body> </html>
<%@ page language="C#" %> <script runat="server"> void VoteMap_Clicked (Object sender, ImageMapEventArgs e) { string coordinates; string hotSpotType; int yescount = ((ViewState["yescount"] != null)? (int)ViewState["yescount"] : 0); int nocount = ((ViewState["nocount"] != null)? (int)ViewState["nocount"] : 0); // When a user clicks the "Yes" hot spot, // display the hot spot's name and coordinates. if (e.PostBackValue.Contains("Yes")) { yescount += 1; coordinates = Vote.HotSpots[0].GetCoordinates(); hotSpotType = Vote.HotSpots[0].ToString (); Message1.Text = "You selected " + hotSpotType + " " + e.PostBackValue + ".<br>" + "The coordinates are " + coordinates + ".<br>" + "The current vote count is " + yescount.ToString() + " yes votes and " + nocount.ToString() + " no votes."; } // When a user clicks the "No" hot spot, // display the hot spot's name and coordinates. else if (e.PostBackValue.Contains("No")) { nocount += 1; coordinates = Vote.HotSpots[1].GetCoordinates(); hotSpotType = Vote.HotSpots[1].ToString (); Message1.Text = "You selected " + hotSpotType + " " + e.PostBackValue + ".<br>" + "The coordinates are " + coordinates + ".<br>" + "The current vote count is " + yescount.ToString() + " yes votes and " + nocount.ToString() + " no votes."; } else { Message1.Text = "You did not click a valid hot spot region."; } ViewState["yescount"] = yescount; ViewState["nocount"] = nocount; } </script> <html> <head id="Head1" runat="server"> <title>ImageMap Class Post Back Example</title> </head> <body> <form id="Form1" runat="server"> <h3>ImageMap Class Post Back Example</h3> <asp:imagemap id="Vote" imageurl="Images/VoteImage.jpg" width="400" height="200" alternatetext="Vote Yes or No" hotspotmode="PostBack" onclick="VoteMap_Clicked" runat="Server"> <asp:RectangleHotSpot top="0" left="0" bottom="200" right="200" postbackvalue="Yes" alternatetext="Vote yes"> </asp:RectangleHotSpot> <asp:RectangleHotSpot top="0" left="201" bottom="200" right="400" postbackvalue="No" alternatetext="Vote no"> </asp:RectangleHotSpot> </asp:imagemap> <br /><br /> <asp:label id="Message1" runat="Server"> </asp:label> </form> </body> </html>
Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
- ImageMap.Click イベントのページへのリンク