一个自定义的数字输入框控件
项目开发中经常会用到只允许输入数字的文本框控件。虽然很多第三方控商已经提供了不少此类优秀的控件,但是我们为什么就不能自已动手也来DIY一把呢。以下就是本人的一个小例子:
我的设计思路是在用户每次敲击键盘时对键入的字符进行校验以过滤不合法的字符。在文本框失去焦点时再对录入的数据进行一次校验以符合预定的格式。以下是该控件的实现代码。
1
using System;
2
using System.Collections.Generic;
3
using System.ComponentModel;
4
using System.Drawing;
5
using System.Data;
6
using System.Text;
7
using System.Windows.Forms;
8![](/Images/OutliningIndicators/None.gif)
9
namespace Nelson.ControlLibrary
10![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/ContractedBlock.gif)
{
11
public partial class NumberBox : System.Windows.Forms.TextBox
12![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
13
public NumberBox()
14![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
15
InitializeComponent();
16
}
17![](/Images/OutliningIndicators/InBlock.gif)
18![](/Images/OutliningIndicators/ContractedSubBlock.gif)
自定义成员#region 自定义成员
19
private int maxIntegerLength = 10;
20
private int minIntegerLength = 0;
21
private int maxDecimalLength = 4;
22
private int minDecimalLength = 0;
23
private int integerLength;
24
private int decimalLength;
25
#endregion
26![](/Images/OutliningIndicators/InBlock.gif)
27![](/Images/OutliningIndicators/ContractedSubBlock.gif)
自定义属性#region 自定义属性
28![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
29
/// 最大整数位数
30
/// </summary>
31
public int MaxIntegerLength
32![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
33
get
34![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
35
return maxIntegerLength;
36
}
37
set
38![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
39
if (value >= 0 && value >= minIntegerLength)
40![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
41
maxIntegerLength = value;
42
}
43
else
44![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
45
throw new Exception("最大整数位数不应小于最小整数位数");
46
}
47
}
48
}
49![](/Images/OutliningIndicators/InBlock.gif)
50![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
51
/// 最小整数位数
52
/// </summary>
53
public int MinIntegerLength
54![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
55
get
56![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
57
return minIntegerLength;
58
}
59
set
60![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
61
if (value >= 0 && value <= maxIntegerLength)
62![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
63
minIntegerLength = value;
64
}
65
else
66![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
67
throw new Exception("最小整数位数不应大于最大整数位数");
68
}
69
}
70
}
71![](/Images/OutliningIndicators/InBlock.gif)
72![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
73
/// 最大小数位数
74
/// </summary>
75
public int MaxDecimalLength
76![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
77
get
78![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
79
return maxDecimalLength;
80
}
81
set
82![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
83
if (value >= 0 && value >= minDecimalLength)
84![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
85
maxDecimalLength = value;
86
}
87
else
88![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
89
throw new Exception("最大小数位数不应小于最小小数位数");
90
}
91
}
92
}
93![](/Images/OutliningIndicators/InBlock.gif)
94![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
95
/// 最小小数位数
96
/// </summary>
97
public int MinDecimalLength
98![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
99
get
100![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
101
return minDecimalLength;
102
}
103
set
104![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
105
if (value >= 0 && value <= maxDecimalLength)
106![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
107
minDecimalLength = value;
108
}
109
else
110![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
111
throw new Exception("最小小数位数不应大于最大小数位数");
112
}
113
}
114
}
115
#endregion
116![](/Images/OutliningIndicators/InBlock.gif)
117![](/Images/OutliningIndicators/ContractedSubBlock.gif)
重写方法#region 重写方法
118
protected override void OnKeyPress(KeyPressEventArgs e)
119![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
120
int editIndex = SelectionStart; //获取当前编辑位
121![](/Images/OutliningIndicators/InBlock.gif)
122
if (e.KeyChar == (char)Keys.Back) return; //放行"退格"键
123![](/Images/OutliningIndicators/InBlock.gif)
124
if (e.KeyChar.Equals('.') || Char.IsNumber(e.KeyChar)) //过滤非数字与非小数点
125![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
126
if (Text.IndexOf(".") > -1) //是否存在小数点
127![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
128
//禁止重复输入小数点
129
if (e.KeyChar.Equals('.'))
130![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
131
e.Handled = true;
132
return;
133
}
134
else
135![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
136
if (SelectedText.Length > 0)
137![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
138
return;
139
}
140![](/Images/OutliningIndicators/InBlock.gif)
141
integerLength = Text.IndexOf(".");
142
decimalLength = Text.Length - integerLength - 1;
143![](/Images/OutliningIndicators/InBlock.gif)
144
//控制最大小数位数
145
if (decimalLength >= maxDecimalLength && editIndex > Text.IndexOf("."))
146![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
147
e.Handled = true;
148
return;
149
}
150![](/Images/OutliningIndicators/InBlock.gif)
151
//控制最大整数位数
152
if (integerLength >= maxIntegerLength && editIndex <= Text.IndexOf("."))
153![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
154
e.Handled = true;
155
return;
156
}
157
}
158
}
159
else
160![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
161
//控制最大整数位数
162
integerLength = Text.Length;
163
if (integerLength == maxIntegerLength && !e.KeyChar.Equals('.'))
164![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
165
e.Handled = true;
166
}
167
}
168
}
169
else
170![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
171
e.Handled = true;
172
}
173![](/Images/OutliningIndicators/InBlock.gif)
174
base.OnKeyPress(e);
175
}
176![](/Images/OutliningIndicators/InBlock.gif)
177![](/Images/OutliningIndicators/InBlock.gif)
178
protected override void OnLeave(EventArgs e)
179![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
180
if (Text == null || Text == "") return;
181![](/Images/OutliningIndicators/InBlock.gif)
182
Text = Text.TrimStart('0');
183![](/Images/OutliningIndicators/InBlock.gif)
184
//取整数位数与小数位数
185
if (Text.IndexOf(".") == -1)
186![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
187
integerLength = Text.Length;
188
decimalLength = 0;
189
}
190
else
191![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
192
integerLength = Text.IndexOf(".");
193
decimalLength = Text.Length - integerLength - 1;
194
195
//验证小数位数是否符合最小值(不足补零)
196
if (decimalLength < minDecimalLength)
197![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
198
Text = Text.PadRight(integerLength + minDecimalLength + 1, '0');
199
}
200
}
201![](/Images/OutliningIndicators/InBlock.gif)
202
//整数未输自动补零
203
if (integerLength == 0)
204![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
205
Text = "0" + Text;
206
}
207![](/Images/OutliningIndicators/InBlock.gif)
208
//验证整数位数是否符合最小值
209
if (integerLength < minIntegerLength)
210![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
211
Focus();
212
Select(0, integerLength);
213
}
214![](/Images/OutliningIndicators/InBlock.gif)
215
//验证整数位数是否符合最大值
216
if (integerLength > maxIntegerLength)
217![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
218
Focus();
219
Select(0, integerLength);
220
}
221
base.OnLeave(e);
222
}
223
#endregion
224
}
225
}
226![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
2
![](/Images/OutliningIndicators/None.gif)
3
![](/Images/OutliningIndicators/None.gif)
4
![](/Images/OutliningIndicators/None.gif)
5
![](/Images/OutliningIndicators/None.gif)
6
![](/Images/OutliningIndicators/None.gif)
7
![](/Images/OutliningIndicators/None.gif)
8
![](/Images/OutliningIndicators/None.gif)
9
![](/Images/OutliningIndicators/None.gif)
10
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/ContractedBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
11
![](/Images/OutliningIndicators/InBlock.gif)
12
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
13
![](/Images/OutliningIndicators/InBlock.gif)
14
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
15
![](/Images/OutliningIndicators/InBlock.gif)
16
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
17
![](/Images/OutliningIndicators/InBlock.gif)
18
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
19
![](/Images/OutliningIndicators/InBlock.gif)
20
![](/Images/OutliningIndicators/InBlock.gif)
21
![](/Images/OutliningIndicators/InBlock.gif)
22
![](/Images/OutliningIndicators/InBlock.gif)
23
![](/Images/OutliningIndicators/InBlock.gif)
24
![](/Images/OutliningIndicators/InBlock.gif)
25
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
26
![](/Images/OutliningIndicators/InBlock.gif)
27
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
28
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
29
![](/Images/OutliningIndicators/InBlock.gif)
30
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
31
![](/Images/OutliningIndicators/InBlock.gif)
32
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
33
![](/Images/OutliningIndicators/InBlock.gif)
34
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
35
![](/Images/OutliningIndicators/InBlock.gif)
36
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
37
![](/Images/OutliningIndicators/InBlock.gif)
38
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
39
![](/Images/OutliningIndicators/InBlock.gif)
40
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
41
![](/Images/OutliningIndicators/InBlock.gif)
42
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
43
![](/Images/OutliningIndicators/InBlock.gif)
44
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
45
![](/Images/OutliningIndicators/InBlock.gif)
46
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
47
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
48
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
49
![](/Images/OutliningIndicators/InBlock.gif)
50
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
51
![](/Images/OutliningIndicators/InBlock.gif)
52
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
53
![](/Images/OutliningIndicators/InBlock.gif)
54
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
55
![](/Images/OutliningIndicators/InBlock.gif)
56
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
57
![](/Images/OutliningIndicators/InBlock.gif)
58
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
59
![](/Images/OutliningIndicators/InBlock.gif)
60
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
61
![](/Images/OutliningIndicators/InBlock.gif)
62
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
63
![](/Images/OutliningIndicators/InBlock.gif)
64
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
65
![](/Images/OutliningIndicators/InBlock.gif)
66
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
67
![](/Images/OutliningIndicators/InBlock.gif)
68
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
69
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
70
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
71
![](/Images/OutliningIndicators/InBlock.gif)
72
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
73
![](/Images/OutliningIndicators/InBlock.gif)
74
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
75
![](/Images/OutliningIndicators/InBlock.gif)
76
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
77
![](/Images/OutliningIndicators/InBlock.gif)
78
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
79
![](/Images/OutliningIndicators/InBlock.gif)
80
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
81
![](/Images/OutliningIndicators/InBlock.gif)
82
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
83
![](/Images/OutliningIndicators/InBlock.gif)
84
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
85
![](/Images/OutliningIndicators/InBlock.gif)
86
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
87
![](/Images/OutliningIndicators/InBlock.gif)
88
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
89
![](/Images/OutliningIndicators/InBlock.gif)
90
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
91
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
92
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
93
![](/Images/OutliningIndicators/InBlock.gif)
94
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
95
![](/Images/OutliningIndicators/InBlock.gif)
96
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
97
![](/Images/OutliningIndicators/InBlock.gif)
98
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
99
![](/Images/OutliningIndicators/InBlock.gif)
100
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
101
![](/Images/OutliningIndicators/InBlock.gif)
102
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
103
![](/Images/OutliningIndicators/InBlock.gif)
104
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
105
![](/Images/OutliningIndicators/InBlock.gif)
106
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
107
![](/Images/OutliningIndicators/InBlock.gif)
108
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
109
![](/Images/OutliningIndicators/InBlock.gif)
110
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
111
![](/Images/OutliningIndicators/InBlock.gif)
112
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
113
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
114
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
115
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
116
![](/Images/OutliningIndicators/InBlock.gif)
117
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
118
![](/Images/OutliningIndicators/InBlock.gif)
119
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
120
![](/Images/OutliningIndicators/InBlock.gif)
121
![](/Images/OutliningIndicators/InBlock.gif)
122
![](/Images/OutliningIndicators/InBlock.gif)
123
![](/Images/OutliningIndicators/InBlock.gif)
124
![](/Images/OutliningIndicators/InBlock.gif)
125
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
126
![](/Images/OutliningIndicators/InBlock.gif)
127
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
128
![](/Images/OutliningIndicators/InBlock.gif)
129
![](/Images/OutliningIndicators/InBlock.gif)
130
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
131
![](/Images/OutliningIndicators/InBlock.gif)
132
![](/Images/OutliningIndicators/InBlock.gif)
133
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
134
![](/Images/OutliningIndicators/InBlock.gif)
135
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
136
![](/Images/OutliningIndicators/InBlock.gif)
137
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
138
![](/Images/OutliningIndicators/InBlock.gif)
139
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
140
![](/Images/OutliningIndicators/InBlock.gif)
141
![](/Images/OutliningIndicators/InBlock.gif)
142
![](/Images/OutliningIndicators/InBlock.gif)
143
![](/Images/OutliningIndicators/InBlock.gif)
144
![](/Images/OutliningIndicators/InBlock.gif)
145
![](/Images/OutliningIndicators/InBlock.gif)
146
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
147
![](/Images/OutliningIndicators/InBlock.gif)
148
![](/Images/OutliningIndicators/InBlock.gif)
149
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
150
![](/Images/OutliningIndicators/InBlock.gif)
151
![](/Images/OutliningIndicators/InBlock.gif)
152
![](/Images/OutliningIndicators/InBlock.gif)
153
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
154
![](/Images/OutliningIndicators/InBlock.gif)
155
![](/Images/OutliningIndicators/InBlock.gif)
156
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
157
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
158
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
159
![](/Images/OutliningIndicators/InBlock.gif)
160
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
161
![](/Images/OutliningIndicators/InBlock.gif)
162
![](/Images/OutliningIndicators/InBlock.gif)
163
![](/Images/OutliningIndicators/InBlock.gif)
164
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
165
![](/Images/OutliningIndicators/InBlock.gif)
166
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
167
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
168
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
169
![](/Images/OutliningIndicators/InBlock.gif)
170
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
171
![](/Images/OutliningIndicators/InBlock.gif)
172
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
173
![](/Images/OutliningIndicators/InBlock.gif)
174
![](/Images/OutliningIndicators/InBlock.gif)
175
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
176
![](/Images/OutliningIndicators/InBlock.gif)
177
![](/Images/OutliningIndicators/InBlock.gif)
178
![](/Images/OutliningIndicators/InBlock.gif)
179
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
180
![](/Images/OutliningIndicators/InBlock.gif)
181
![](/Images/OutliningIndicators/InBlock.gif)
182
![](/Images/OutliningIndicators/InBlock.gif)
183
![](/Images/OutliningIndicators/InBlock.gif)
184
![](/Images/OutliningIndicators/InBlock.gif)
185
![](/Images/OutliningIndicators/InBlock.gif)
186
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
187
![](/Images/OutliningIndicators/InBlock.gif)
188
![](/Images/OutliningIndicators/InBlock.gif)
189
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
190
![](/Images/OutliningIndicators/InBlock.gif)
191
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
192
![](/Images/OutliningIndicators/InBlock.gif)
193
![](/Images/OutliningIndicators/InBlock.gif)
194
![](/Images/OutliningIndicators/InBlock.gif)
195
![](/Images/OutliningIndicators/InBlock.gif)
196
![](/Images/OutliningIndicators/InBlock.gif)
197
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
198
![](/Images/OutliningIndicators/InBlock.gif)
199
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
200
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
201
![](/Images/OutliningIndicators/InBlock.gif)
202
![](/Images/OutliningIndicators/InBlock.gif)
203
![](/Images/OutliningIndicators/InBlock.gif)
204
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
205
![](/Images/OutliningIndicators/InBlock.gif)
206
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
207
![](/Images/OutliningIndicators/InBlock.gif)
208
![](/Images/OutliningIndicators/InBlock.gif)
209
![](/Images/OutliningIndicators/InBlock.gif)
210
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
211
![](/Images/OutliningIndicators/InBlock.gif)
212
![](/Images/OutliningIndicators/InBlock.gif)
213
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
214
![](/Images/OutliningIndicators/InBlock.gif)
215
![](/Images/OutliningIndicators/InBlock.gif)
216
![](/Images/OutliningIndicators/InBlock.gif)
217
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
218
![](/Images/OutliningIndicators/InBlock.gif)
219
![](/Images/OutliningIndicators/InBlock.gif)
220
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
221
![](/Images/OutliningIndicators/InBlock.gif)
222
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
223
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
224
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
225
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
226
![](/Images/OutliningIndicators/None.gif)