forked from yswenli/Wenli.IEM
-
Notifications
You must be signed in to change notification settings - Fork 0
/
WordBoard.cs
113 lines (95 loc) · 2.81 KB
/
WordBoard.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Text;
using System.Windows.Forms;
using Wenli.IEM.Helper;
namespace Wenli.IEM
{
public partial class WordBoard : CCWin.Skin_Mac
{
public WordBoard()
{
InitializeComponent();
}
private void WordBoard_Load(object sender, EventArgs e)
{
Program.keyBordHook.KeyUpEvent += KeyBordHook_KeyUpEvent;
Program.keyBordHook.OnSpaced += KeyBordHook_OnSpaced;
Program.keyBordHook.OnBacked += KeyBordHook_OnBacked;
Program.keyBordHook.OnPaged += KeyBordHook_OnPaged;
}
string keys = "";
private void KeyBordHook_KeyUpEvent(object sender, KeyEventArgs e)
{
keys += e.KeyCode.ToString().ToLower();
this.ShowCharatar();
}
private void KeyBordHook_OnSpaced(int choose)
{
try
{
if (CacheHelper.ContainsKey(keys))
{
if (choose > 0)
{
choose = choose - 1;
}
Program.keyBordHook.Send(CacheHelper.Get(keys)[choose]);
label1.Text = "";
this.listView1.Clear();
}
}
catch
{
}
keys = "";
}
private void KeyBordHook_OnBacked()
{
if (!string.IsNullOrEmpty(keys))
{
keys = keys.Substring(0, keys.Length - 1);
}
this.ShowCharatar();
}
int pageIndex = 1;
private void KeyBordHook_OnPaged(int obj)
{
pageIndex = pageIndex + obj;
if (pageIndex < 1)
pageIndex = 1;
ShowCharatar();
}
private void ShowCharatar()
{
this.listView1.BeginInvoke(new Action(() =>
{
label1.Text = keys;
try
{
var arr = CacheHelper.Get(keys).ToList().Skip((pageIndex - 1) * 9).Take(9).ToArray();
if (arr != null && arr.Any())
{
this.listView1.Items.Clear();
for (int i = 0; i < arr.Count(); i++)
{
this.listView1.Items.Add((i + 1) + "、" + arr[i]);
}
}
else
pageIndex--;
}
catch
{
label1.Text = keys = "";
}
}));
}
}
}