一般情况下,dotnetfx自带的MessageBox.Show()方法可满足简单的信息提示。
在实际业务中,经常提示并统计的应用场景。
1、简单描述
这种情况下,有主提示信息,比如:“修改成功!”,但需要一些统计信息,
比如:
共有{0}条修改成功,{1}条修改失败!
单据****,修改成功!
单据****,修改成功!
单据****已审核,修改失败!
2、图标和标题
MessageBox.Show()的不同类型提示的图标以及标题也是需要的,比如警告、确认、三态按钮等等。
3、多语言支持
采用标准的方法即可。
下面展示一下我的自定义提示消息的实体定义
1
using System;
2
using System.Collections.Generic;
3
using System.Text;
4![](/Images/OutliningIndicators/None.gif)
5
namespace YourCompany.Common
6![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/ContractedBlock.gif)
{
7
[Serializable]
8
public class TipMessage
9![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
10
private string m_advance;
11
private string m_caption;
12
private string m_text;
13
private Exception m_exception;
14
private int m_failAdvanceCount;
15
private int m_successfulAdvanceCount;
16![](/Images/OutliningIndicators/InBlock.gif)
17![](/Images/OutliningIndicators/ContractedSubBlock.gif)
属性#region 属性
18
public string Text
19![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
20![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
get
{ return m_text; }
21![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
set
{ m_text = value; }
22
}
23![](/Images/OutliningIndicators/InBlock.gif)
24
public int TotalAdvanceCount
25![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
26
get
27![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
28
return m_failAdvanceCount + m_successfulAdvanceCount;
29
}
30
}
31
public bool HasFailMessage
32![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
33
get
34![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
35
return m_failAdvanceCount>0;
36
}
37
}
38
public int SuccessfulAdvanceCount
39![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
40
get
41![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
42
return m_successfulAdvanceCount;
43
}
44
}
45![](/Images/OutliningIndicators/InBlock.gif)
46
public bool HasAdvance
47![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
48
get
49![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
50
if (m_advance == null || m_advance.Length == 0)
51![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
52
return false;
53
}
54
else
55![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
56
return true;
57
}
58
//return m_advance != null || m_advance.Length > 0;
59
}
60
}
61![](/Images/OutliningIndicators/InBlock.gif)
62
public int FailAdvanceCount
63![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
64![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
get
{ return m_failAdvanceCount; }
65
}
66![](/Images/OutliningIndicators/InBlock.gif)
67
public Exception Exception
68![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
69![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
get
{ return m_exception; }
70![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
set
{ m_exception = value; }
71
}
72![](/Images/OutliningIndicators/InBlock.gif)
73
public string Caption
74![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
75![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
get
{ return m_caption; }
76![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
set
{ m_caption = value; }
77
}
78![](/Images/OutliningIndicators/InBlock.gif)
79
public string Advance
80![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
81![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
get
{ return m_advance; }
82![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
set
{ m_advance = value; }
83
}
84
#endregion
85![](/Images/OutliningIndicators/InBlock.gif)
86![](/Images/OutliningIndicators/ContractedSubBlock.gif)
方法#region 方法
87
public void AppendAdvance(string advance)
88![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
89
StringBuilder sb = new StringBuilder();
90
sb.Append(m_advance);
91
sb.Append(advance);
92
m_advance = sb.ToString();
93
}
94
public void AppendAdvance(string advance, bool isSuccessful)
95![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
96
StringBuilder sb = new StringBuilder();
97
sb.Append(m_advance);
98
sb.Append(advance);
99
m_advance = sb.ToString();
100
if (isSuccessful)
101![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
102
m_successfulAdvanceCount++;
103
}
104
else
105![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
106
m_failAdvanceCount++;
107
}
108
}
109
public void AppendAdvance(string advance, params object[] args)
110![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
111
advance = string.Format(advance, args);
112
StringBuilder sb = new StringBuilder();
113
sb.Append(m_advance);
114
sb.Append(advance);
115
m_advance = sb.ToString();
116
}
117
public void AppendAdvance(string advance, bool isSuccessful, params object[] args)
118![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
119
advance = string.Format(advance, args);
120
StringBuilder sb = new StringBuilder();
121
sb.Append(m_advance);
122
sb.Append(advance);
123
m_advance = sb.ToString();
124
if (isSuccessful)
125![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
126
m_successfulAdvanceCount++;
127
}
128
else
129![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
130
m_failAdvanceCount++;
131
}
132
}
133
public void AppendAdvanceLine(string advance)
134![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
135
StringBuilder sb = new StringBuilder();
136
sb.Append(m_advance);
137
sb.AppendLine(advance);
138
m_advance = sb.ToString();
139
}
140
public void AppendAdvanceLine(string advance, bool isSuccessful)
141![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
142
StringBuilder sb = new StringBuilder();
143
sb.Append(m_advance);
144
sb.AppendLine(advance);
145
m_advance = sb.ToString();
146
if (isSuccessful)
147![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
148
m_successfulAdvanceCount++;
149
}
150
else
151![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
152
m_failAdvanceCount++;
153
}
154
}
155
public void AppendAdvanceLine(string advance, params object[] args)
156![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
157
advance = string.Format(advance, args);
158
StringBuilder sb = new StringBuilder();
159
sb.Append(m_advance);
160
sb.AppendLine(advance);
161
m_advance = sb.ToString();
162
}
163
public void AppendAdvanceLine(string advance, bool isSuccessful, params object[] args)
164![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
165
advance = string.Format(advance, args);
166
StringBuilder sb = new StringBuilder();
167
sb.Append(m_advance);
168
sb.AppendLine(advance);
169
m_advance = sb.ToString();
170
if (isSuccessful)
171![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
172
m_successfulAdvanceCount++;
173
}
174
else
175![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
176
m_failAdvanceCount++;
177
}
178
}
179
#endregion
180![](/Images/OutliningIndicators/InBlock.gif)
181![](/Images/OutliningIndicators/ContractedSubBlock.gif)
构造析构#region 构造析构
182
public TipMessage()
183![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
184
}
185![](/Images/OutliningIndicators/InBlock.gif)
186
public TipMessage(string text)
187![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
188
m_text = text;
189
m_caption = "YourCompany Message";
190
}
191
#endregion
192![](/Images/OutliningIndicators/InBlock.gif)
193
}
194
}
195![](/Images/OutliningIndicators/None.gif)