Perfekt, precis vad jag har letat hela dagen efter. Men jag har lite problem med att översätta det till VB.NET. Lägg en AddHandler har jag redan. Koden som måste översättas:Sv: CF2: NotifyIcon
Svara
Sv:CF2: NotifyIcon
<code>
if (notifyIcon.Click != null)
notifyIcon.Click(notifyIcon, null);
</code>
Det blir översatt till:
<code>
If notifyIcon.Click IsNot Nothing Then
notifyIcon.Click(notifyIcon, Nothing)
End If
</code>
VS2008 klagar på det:
<info>
'Public Event Click(sender As Object, e As System.EventArgs)' is an event, and cannot be called directly. Use a 'RaiseEvent' statement to raise an event.
</info>
Försöker jag med RaiseEvent så verkar inte notifyIcon.Click finnas. Tips?
/ThomasSv: CF2: NotifyIcon
<code>AddHandler notifyIcon.Click, AddressOf NotifyIconClicked</code>
så borde det väl funka?Sv:CF2: NotifyIcon
<code>
protected override void WndProc(ref Microsoft.WindowsCE.Forms.Message msg)
{
if (msg.Msg == WM_NOTIFY_TRAY)
{
if ((int)msg.LParam == WM_LBUTTONDOWN)
{
if ((int)msg.WParam == m_uID)
{
//If somebody hooked, raise the event
if (notifyIcon.Click != null)
notifyIcon.Click(notifyIcon, null);
}
}
}
}
</code>
Blir översatt till:
<code>
Protected Overloads Overrides Sub WndProc(ByRef msg As Microsoft.WindowsCE.Forms.Message)
If msg.Msg = WM_NOTIFY_TRAY Then
If CInt(msg.LParam) = WM_LBUTTONDOWN Then
If CInt(msg.WParam) = m_uID Then
'If somebody hooked, raise the event
If notifyIcon.Click IsNot Nothing Then
notifyIcon.Click(notifyIcon, Nothing)
End If
End If
End If
End If
End Sub
</code>
Och där får jag problem med notifyIcon, som jag skrev tidigare. Fler tips?
/Thomas