Suchen
Aktuell
- Aktuell
- Kommentare
- TagCloud
- Windows Phone 7: Silverlight und XNA
- 1267769400 1267769400 - Keine Kommentare
- Empfehlung: Microsoft Arc Keyboard
- 1266747660 1266747660 - 2 Kommentare
- C#: Outlook like Pop-up Alert
- 1264008720 1264008720 - Keine Kommentare
- Windows Mobile 7 - Verschiedene Versionen geplant
- 1264007340 1264007340 - Keine Kommentare
- Windows Media Center: Pixelfehler am rechten Rand
- 1260208800 1260208800 - Keine Kommentare
- Das Outlook Fenster kann nicht geöffnet werden #2
- 1259409180 1259409180 - 14 Kommentare
- Bis jetzt sind noch keine Kommentare geschrieben worden
Randnotiz
W3C
- Keine Kommentare
C#: Outlook like Pop-up Alert
Jeder kennt die Outlook-Benachrichtigungen am rechten unten Bildschirmrand wenn man eine neue Mail erhält. Leider gibt es im .Net-Framework kein fertiges Control, welches genau die gleiche Funktionalität bietet. Jedoch kann man mit wenigen Zeilen Code sich ein eigenes solches Control schreiben.
Im Prinzip verwenden wir einfach ein normales Windows Forms ohne Rand (ShowInTaskBar = false, FormBorderStyle =none, TopMost = true) und bewegen dieses von unten nach oben.
Dazu benötigen wir 3 verschiedene Timer:
//
// _timerLoad
//
this._timerLoad.Enabled = true;
this._timerLoad.Interval = 10;
this._timerLoad.Tick += new System.EventHandler(this._timerLoad_Tick);
//
// _timerHide
//
this._timerHide.Interval = 10;
this._timerHide.Tick += new System.EventHandler(this._timerHide_Tick);
//
// _timerShown
//
this._timerShown.Interval = 3000;
this._timerShown.Tick += new System.EventHandler(this._timerShown_Tick);
_timerLoad regel das einblenden, _timerHide das ausblenden und _timerShow dient dazu, das Ausblenden nach 3 Sekunden zu starten.
Im Load Ereignis des Forms müssen wir dann die Form Positionieren:
_x = Screen.GetWorkingArea(this).Width;
_y = Screen.GetWorkingArea(this).Height;
Location = new Point(_x - Width, _y + Height);
_timerLoad.Enabled = true;
_timerLoad.Start();
Danach die 3 Timer-Events zum ein und ausblenden:
/// <summary>
/// Form einblenden
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void _timerLoad_Tick(object sender, EventArgs e)
{
int i = Location.Y;
if (i > _y - Height)
{
Location = new Point(_x - Width, i - 8);
}
else
{
_timerLoad.Stop();
_timerLoad.Enabled = false;
_timerShown.Start();
_timerShown.Enabled = true;
}
}
/// <summary>
/// Warten und dann ausblenden
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void _timerShown_Tick(object sender, EventArgs e)
{
_timerHide.Enabled = true;
_timerHide.Start();
}
/// <summary>
/// Form ausblenden
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void _timerHide_Tick(object sender, EventArgs e)
{
int i = Location.Y;
if (i < _y)
{
Location = new Point(_x - Width, i + 8);
}
else
{
_timerHide.Stop();
_timerHide.Enabled = false;
Close();
}
}
Kommentare
- Bis jetzt sind noch keine Kommentare geschrieben worden



