# C1.Win.TouchToolKit.C1TouchEventProvider.PointerReleased

## Content

<div class="doc-site-dotnet-api-container">




<h1 id="C1_Win_TouchToolKit_C1TouchEventProvider_PointerReleased" data-uid="C1.Win.TouchToolKit.C1TouchEventProvider.PointerReleased" class="text-break">PointerReleased Event
</h1>
<div class="markdown level0 summary"><p>Occurs when the pointer device that previously initiated a Press action is released,
while within the specific control. Note that the end of a Press action is not guaranteed to fire a
<a class="xref" href="C1.Win.TouchToolKit.C1TouchEventProvider.PointerReleased.html">PointerReleased</a> event; other events may fire instead. For more info, see Remarks.</p>
</div>
<div class="markdown level0 conceptual"></div>
<h6><strong>Namespace</strong>: <a class="xref" href="C1.Win.TouchToolKit.html">C1.Win.TouchToolKit</a></h6>
<h6><strong>Assembly</strong>: C1.Win.TouchToolKit.4.8.dll</h6>
<h5 id="C1_Win_TouchToolKit_C1TouchEventProvider_PointerReleased_syntax">Syntax</h5>
<div class="codewrapper">
  <pre><code class="lang-csharp hljs">public event EventHandler&lt;PointerEventArgs&gt; PointerReleased</code></pre>
</div>
<div class="codewrapper">
  <pre><code class="lang-vbnet hljs">Public Event PointerReleased As EventHandler(Of PointerEventArgs)</code></pre>
</div>
<h5 class="returns">Returns</h5>
<table class="table table-bordered table-condensed">
  <thead>
    <tr>
      <th>Type</th>
      <th>Description</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.eventhandler-1">EventHandler</a>&lt;<a class="xref" href="C1.Win.TouchToolKit.PointerEventArgs.html">PointerEventArgs</a>&gt;</td>
      <td>Occurs when the pointer device that previously initiated a Press action is released, while within the specific control. Note that the end of a Press action is not guaranteed to fire a  event; other events may fire instead. For more info, see Remarks.</td>
    </tr>
  </tbody>
</table>
<h5 id="C1_Win_TouchToolKit_C1TouchEventProvider_PointerReleased_remarks"><strong>Remarks</strong></h5>
<div class="markdown level0 remarks"><p>
<b>Note</b>  Other events instead of <a class="xref" href="C1.Win.TouchToolKit.C1TouchEventProvider.PointerReleased.html">PointerReleased</a> may fire at the end of the 
action—for example, <a class="xref" href="C1.Win.TouchToolKit.C1TouchEventProvider.PointerCanceled.html">PointerCanceled</a> or <a class="xref" href="C1.Win.TouchToolKit.C1TouchEventProvider.PointerCaptureLost.html">PointerCaptureLost</a>. Don't rely 
on <a class="xref" href="C1.Win.TouchToolKit.C1TouchEventProvider.PointerPressed.html">PointerPressed</a> and <a class="xref" href="C1.Win.TouchToolKit.C1TouchEventProvider.PointerReleased.html">PointerReleased</a> events always occurring in pairs. 
To function properly, your app must listen for and handle all events that represent likely 
conclusions to the Press action. Some of the reasons why you might not get a 
<a class="xref" href="C1.Win.TouchToolKit.C1TouchEventProvider.PointerReleased.html">PointerReleased</a> occurrence are:
</p>
<ul><li>
Differences in how specific hardware handles touch actions and Press actions
</li><li>
User actions that change the relationship of the display area, such as changing resolution
or monitor settings
</li><li>
Input interactions such as a stylus touching the same surface as a previous touch action
</li></ul>
<p>
This event is a routed event. If you do not want parent control receive this event, set <a class="xref" href="C1.Win.TouchToolKit.TouchRoutedEventArgs.Handled.html#C1_Win_TouchToolKit_TouchRoutedEventArgs_Handled">PointerEventArgs.Handled</a>
</p>
</div>
<h5 id="C1_Win_TouchToolKit_C1TouchEventProvider_PointerReleased_examples"><strong>Examples</strong></h5>
<p>
  The following code example shows how to use this event. 
</p>
<p>
  This code example is part of a larger example provided for the <a class="xref" href="C1.Win.TouchToolKit.C1TouchEventProvider.PointerPressed.html">PointerPressed</a> event.
</p>
<pre><code class="lang-csharp">public class GcTouchEventProviderPointerDemo : Form
{
	private Panel _bluePanel;
	private ListBox _messageListBox;
	private GcTouchEventProvider _gcTouchEventProvider = new GcTouchEventProvider();

	public GcTouchEventProviderPointerDemo()
	{
		InitializeComponent();

		_gcTouchEventProvider.SetEnableTouchEvents(_bluePanel, true);

		_gcTouchEventProvider.PointerReleased += _gcTouchEventProvider_PointerReleased;
	}

	private void _gcTouchEventProvider_PointerReleased(object sender, PointerEventArgs e)
	{
		string log = "Target: " + e.TargetControl.Name + " Event: PointerReleased" + "  X: " + e.Position.X.ToString() + " Y: " + e.Position.Y.ToString();
		_messageListBox.Items.Add(log);
	}

	private void _clearButton_Click(object sender, EventArgs e)
	{
		_messageListBox.Items.Clear();
	}

	private void InitializeComponent()
	{
		_bluePanel = new Panel();
		_bluePanel.Name = "Blue";
		_bluePanel.BackColor = Color.Blue;
		_bluePanel.Size = new Size(200, 200);
		_bluePanel.Location = new Point(20, 20);

		_messageListBox = new ListBox();
		_messageListBox.Size = new Size(750, 310);
		_messageListBox.Location = new Point(20, 240);

		this.Controls.Add(_bluePanel);
		this.Controls.Add(_messageListBox);
	}
}</code></pre>
<pre><code class="lang-csharp">Public Class GcTouchEventProviderPointerDemo
	Inherits Form
	Private _bluePanel As Panel
	Private _messageListBox As ListBox
	Private _gcTouchEventProvider As New GcTouchEventProvider()

	Public Sub New()
		InitializeComponent()

		_gcTouchEventProvider.SetEnableTouchEvents(_bluePanel, True)

		AddHandler _gcTouchEventProvider.PointerReleased, AddressOf _gcTouchEventProvider_PointerReleased
	End Sub

	Private Sub _gcTouchEventProvider_PointerReleased(sender As Object, e As PointerEventArgs)
		Dim log As String = "Target: " &amp; Convert.ToString(e.TargetControl.Name) &amp; " Event: PointerReleased" &amp; "  X: " &amp; e.Position.X.ToString() &amp; " Y: " &amp; e.Position.Y.ToString()
		_messageListBox.Items.Add(log)
	End Sub

	Private Sub InitializeComponent()
		_bluePanel = New Panel()
		_bluePanel.Name = "Blue"
		_bluePanel.BackColor = Color.Blue
		_bluePanel.Size = New Size(200, 200)
		_bluePanel.Location = New Point(20, 20)

		_messageListBox = New ListBox()
		_messageListBox.Size = New Size(750, 310)
		_messageListBox.Location = New Point(20, 240)

		Me.Controls.Add(_bluePanel)
		Me.Controls.Add(_messageListBox)
	End Sub
End Class</code></pre>

</div>
