404 Error
优秀的设计 + 优秀的工具 才能产生优秀的程序
优秀的设计可以改善工具的缺陷;优秀的工具却不能改良烂到家的设计。
博客园
社区
首页
新随笔
联系
管理
订阅
随笔- 27 文章- 0 评论- 118
带有空值提示的TextBox
看到很多网站上的输入框都有空值提示,即:输入框中没有内容且没有焦点时,输入框中显示的是提示文字;如果有内容或者拥有焦点,则正常显示。我觉得这东西很有意思,在某些应用中,可以减少界面排版上的麻烦,可惜WinForm中的TextBox没有此功能,于是自己做了一个,效果嘛,还算满意的:)
public
class
TEditBox : System.Windows.Forms.TextBox
{
public
TEditBox()
:
base
()
{
}
private
string
_Caption
=
"
Please Input
"
;
/**/
///
<summary>
///
提示内容
///
</summary>
public
string
Caption
{
get
{
return
_Caption;
}
set
{
_Caption
=
value;
if
(
!
DesignMode
&&
Nothing)
base
.Text
=
value;
}
}
private
System.Drawing.Color _CaptionColor
=
System.Drawing.SystemColors.Control;
/**/
///
<summary>
///
提示字体的颜色
///
</summary>
public
System.Drawing.Color CaptionColor
{
get
{
return
_CaptionColor;
}
set
{
if
(
!
DesignMode
&&
!
Focused
&&
Nothing)
base
.ForeColor
=
value;
_CaptionColor
=
value;
}
}
private
System.Drawing.Color _ForeColor
=
System.Drawing.SystemColors.WindowText;
public
new
System.Drawing.Color ForeColor
{
get
{
return
base
.ForeColor;
}
set
{
if
(
!
this
.DesignMode)
{
if
(Focused
||
!
Nothing)
base
.ForeColor
=
value;
_ForeColor
=
value;
}
else
base
.ForeColor
=
value;
}
}
private
bool
HaveNothing
=
true
;
private
bool
Nothing
{
get
{
return
HaveNothing
||
this
.Text
==
""
; }
}
public
new
string
Text
{
get
{
if
(
!
Focused
&&
HaveNothing)
return
""
;
else
return
base
.Text;
}
set
{
base
.Text
=
value;
HaveNothing
=
value
==
""
;
if
(Nothing
&&
!
Focused)
{
base
.Text
=
_Caption;
base
.ForeColor
=
_CaptionColor;
}
else
{
if
(
base
.ForeColor
!=
_ForeColor)
base
.ForeColor
=
_ForeColor;
}
}
}
protected
override
void
OnGotFocus(EventArgs e)
{
if
(Nothing)
base
.Text
=
""
;
if
(
base
.ForeColor
!=
_ForeColor)
base
.ForeColor
=
_ForeColor;
base
.OnGotFocus(e);
}
protected
override
void
OnLostFocus(EventArgs e)
{
HaveNothing
=
base
.Text
==
""
;
if
(Nothing)
{
base
.Text
=
_Caption;
base
.ForeColor
=
_CaptionColor;
}
else
{
if
(
base
.ForeColor
!=
_ForeColor)
base
.ForeColor
=
_ForeColor;
}
base
.OnLostFocus(e);
}
public
new
void
Clear()
{
this
.Text
=
""
;
}
}
属性Caption和CaptionColor是新增的,用来存储提示文字和提示文字的颜色
posted @ 2007-09-19 14:04
AndyHai
阅读(305)
评论(2)
编辑
收藏
网摘
所属分类:
Others
发表评论
回复
引用
查看
#1楼
[
楼主
]2007-09-19 14:06 |
AndyHai
哎~~本月总算是有一篇内容了,快忙晕咯~~
回复
引用
#2楼
2007-09-19 17:03 |
缘来如此 [未注册用户]
呵呵,收藏啦
新用户注册
刷新评论列表
标题
姓名
主页
Email
(博主才能看到)
验证码
*
看不清,换一张
[
登录
][
注册
]
内容(请不要发表任何与政治相关的内容)
网站首页
新闻频道
社区
小组
博问
网摘
人才
找找看
Remember Me?
登录
使用高级评论
新用户注册
返回页首
恢复上次提交
[使用Ctrl+Enter键可以直接提交]
该文被作者在 2007-09-22 09:38 编辑过
Google站内搜索
China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
近千种 9-95 新二手计算图书火热销售中!
相关文章:
相关链接:
所属分类的其他文章:
用C#实现的黑客帝国中的字符雨特效
一个PCM音频转换与混音的示例
关心则乱
让ASPX和ASMX脱离IIS运行的例子(ASP.NET宿主程序)
带有空值提示的TextBox
在.NET中探测U盘的插入/拔出
Tuxedo
搞定!
用Multi-Media Library实现的波形音频录制与播放
用Multi-Media Library制作流式音频播放器
最新IT新闻:
Silverlight 2 SDK中文版发布
[译稿]微软将 jQuery IntelliSense整合到Visual Studio
微软:不裁员也不削减研发开支
2008年11月22日科技博客精选
诺基亚将支持Lotus Notes 和黑莓争夺市场
公告
<
2007年9月
>
日
一
二
三
四
五
六
26
27
28
29
30
31
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
1
2
3
4
5
6
搜索
留言簿
给我留言
查看留言
随笔分类
(29)
ADO.NET
(rss)
C#.NET(3)
(rss)
Others(15)
(rss)
Remoting & WebService(4)
(rss)
Socket & Protocol(6)
(rss)
SQL(1)
(rss)
随笔档案
(27)
2008年9月 (1)
2008年7月 (1)
2008年6月 (2)
2007年11月 (1)
2007年10月 (1)
2007年9月 (1)
2007年8月 (1)
2007年7月 (19)
相册
My Baby
积分与排名
积分 - 17115
排名 - 2499
最新随笔
1. 用C#实现的黑客帝国中的字符雨特效
2. 谁动了我的构造函数?
3. 一个PCM音频转换与混音的示例
4. 关心则乱
5. 让ASPX和ASMX脱离IIS运行的例子(ASP.NET宿主程序)
6. SQL 中如何对纪录进行拆分
7. 带有空值提示的TextBox
8. NAT类型检测方法(转载)
9. 在.NET中探测U盘的插入/拔出
10. 用WebService实现中国移动的Provision反向接口
最新评论
1. re: 让ASPX和ASMX脱离IIS运行的例子(ASP.NET宿主程序)
异常详细信息: System.Web.HttpException: “”不是受支持的语言,
是什么意思,希望高手解答一下 (baird)
2. re: 用C#实现的黑客帝国中的字符雨特效
@老Q
FW跟软件运行有关,你不知道... (啊)
3. re: 用C#实现的黑客帝国中的字符雨特效
为啥不来个效果图看看? (吉日嘎拉)
4. re: 用C#实现的黑客帝国中的字符雨特效
需要 安装consolas字体才能运行 (rrrr)
5. re: 用C#实现的黑客帝国中的字符雨特效
@真见
.net框架和IE有什么关系? (老Q)
阅读排行榜
1. 用Multi-Media Library制作流式音频播放器(1181)
2. 中国电信SMGP协议网关API源码 For VS.NET 2005(1116)
3. 谁动了我的构造函数?(1041)
4. 用C#实现的黑客帝国中的字符雨特效(876)
5. 在.NET中探测U盘的插入/拔出(864)
评论排行榜
1. 中国电信SMGP协议网关API源码 For VS.NET 2005(16)
2. 谁动了我的构造函数?(12)
3. 用C#实现的黑客帝国中的字符雨特效(12)
4. 让ASPX和ASMX脱离IIS运行的例子(ASP.NET宿主程序)(11)
5. 在.NET中探测U盘的插入/拔出(11)
QQ: 2369537