Purpose:
Recently, I have heard that the user has not promptly logged on to the eip to approve the file, leading to delays. There is no way to think about it. The Workflow Based on B/S does not have the reminder function as convenient as winform. Although there are reminders in it, it is only available when the eip is opened. So I recently spent some time writing something similar to QQ message reminders.
Technology:
1. webserivce: interface used to call a remote Workflow
2. GDI +: draws the reminder box interface.
3. multithreading.
4. asynchronous delegation.
Components:
1. appconfig helper class.
2. reg auxiliary class. The user writes the registry.
3. SQL auxiliary class. Access the database to verify the user identity.
4. Third-party controls.
Function:
1. Check whether the account in the current configuration file is valid.
If it is effective, the reminder is executed. The account settings page is displayed.
2. Similar to QQ's automatic reminder.
3. You can set Automatic startup.
4. The password or account is automatically terminated due to misunderstanding and the account settings page is displayed.
Image:
1. account settings page
2. configuration page
3. parameter configuration page
4. Complete the interface and message reminder Interface
The bottom of the calf tray is.
5. Related operations during running
Code:
This is a small toy, and the code is relatively simple, so it is not provided, so that you do not have to smile, and you can also search for the relevant code on the Internet.
This is the source code of the qq message box.
Code
1 protected virtual void drawBorder (Graphics fx)
2 {
3 fx. DrawRectangle (Pens. Silver, 2, 2, Width-4, ActualHeight-4 );
4 // fx. DrawRectangle (new Pen (new SolidBrush (Color. FromArgb (49,191,239), 2, Width-4, 16 );
5
6 fx. DrawLine (new Pen (new SolidBrush (Color. FromArgb (51, 94,168), 0, 0, Width, 0 );
7 fx. FillRectangle (new SolidBrush (Color. FromArgb (59,191,239), Width-2, 17 );
8 fx. DrawLine (new Pen (new SolidBrush (Color. FromArgb (141,230,255), 0, 16, Width, 16 );
9 // Top border
10 // fx. DrawLine (Pens. Silver, 0, 0, Width, 0 );
11 // fx. DrawLine (Pens. White, 0, 1, Width, 1 );
12 // fx. DrawLine (Pens. DarkGray, 3, 3, Width-4, 3 );
13 // fx. DrawLine (Pens. DimGray, 4, 4, Width-5, 4 );
14 fx. DrawLine (new Pen (new solidbrushed (Color. FromArgb (51, 94,168), 0, 0, 0, ActualHeight );
15 fx. DrawLine (new Pen (new SolidBrush (Color. FromArgb (59,191,239), 1, 1, 1, ActualHeight );
16 fx. DrawLine (new Pen (new SolidBrush (Color. FromArgb (141,230,255), 2, 17, 2, ActualHeight );
17 // Left border
18 // fx. DrawLine (Pens. Silver, 0, 0, 0, ActualHeight );
19 // fx. DrawLine (Pens. White, 1, 1, 1, ActualHeight );
20 // fx. DrawLine (Pens. DarkGray, 3, 3, 3, ActualHeight-4 );
21 // fx. DrawLine (Pens. DimGray, 4, 4, 4, ActualHeight-5 );
22 fx. DrawLine (new Pen (new SolidBrush (Color. FromArgb (51, 94,168), 1, ActualHeight-1, Width-1, ActualHeight-1 );
23 fx. DrawLine (new Pen (new SolidBrush (Color. FromArgb (141,230,255), 2, ActualHeight-2, Width-2, ActualHeight-2 );
24/** // Bottom border
25 // fx. DrawLine (Pens. DarkGray, 1, ActualHeight-1, Width-1, ActualHeight-1 );
26 // fx. DrawLine (Pens. White, 3, ActualHeight-3, Width-3, ActualHeight-3 );
27 // fx. DrawLine (Pens. Silver, 4, ActualHeight-4, Width-4, ActualHeight-4 );
28 fx. DrawLine (new Pen (new SolidBrush (Color. FromArgb (51, 94,168), Width-1, 1, Width-1, ActualHeight-1 );
29 fx. DrawLine (new Pen (new SolidBrush (Color. FromArgb (141,230,255), Width-2, 16, Width-2, ActualHeight-2 );
30/*** // Right border
31 // fx. DrawLine (Pens. DarkGray, Width-1, 1, Width-1, ActualHeight-1 );
32 // fx. DrawLine (Pens. White, Width-3, 3, Width-3, ActualHeight-3 );
33 // fx. DrawLine (Pens. Silver, Width-4, 4, Width-4, ActualHeight-4 );
34}
I hope everyone will criticize and correct it.