悟空-简单就好
.net企业级应用研究
考虑最复杂的情况
开发出最简单的实现
多种方式,帮你快速找到文档(知识点)!
导航
博客园
首页
联系
订阅
管理
公告
专业个人知识管理PKM软件提供商
我的最新闪存
对程序员更重要的针式个人知识库管理软件V5.01版本发布了.PKM.Happy,Mark
与我联系
发短消息
搜索
常用链接
我的随笔
我的空间
我的短信
我的评论
更多链接
我的参与
我的新闻
最新评论
我的标签
留言簿
给我留言
查看留言
我参与的团队
厦门.NET俱乐部(0/0)
福州.NET俱乐部(0/0)
随笔档案
2009年4月 (1)
2008年12月 (1)
2008年9月 (1)
2008年7月 (3)
2008年6月 (2)
2008年5月 (1)
2008年4月 (1)
2008年2月 (1)
2008年1月 (2)
2007年11月 (1)
2007年10月 (3)
2007年9月 (8)
2007年8月 (1)
2007年7月 (10)
2007年6月 (4)
2007年5月 (3)
2007年4月 (6)
2007年3月 (2)
2007年2月 (2)
2007年1月 (3)
2006年11月 (4)
2006年10月 (1)
2006年9月 (2)
2006年8月 (3)
2006年7月 (5)
2006年6月 (3)
2006年5月 (5)
2006年4月 (8)
2006年3月 (2)
2006年2月 (3)
2006年1月 (1)
2005年12月 (11)
2005年11月 (6)
2005年10月 (2)
2005年9月 (9)
2005年8月 (12)
积分与排名
积分 - 126818
排名 - 416
最新随笔
1. 阿里SaaS钱掌柜免费的背后
2. 一款彻底解决企业考勤薪资问题的软件
3. 针式C/5软件
4. COM+异常:系统找不到指定的文件。 (异常来自 HRESULT:0x80070002)
5. amteam网站的出错页面和讨论大型网站架构
6. 一种在线注册的方法
7. 使用飞信脱.net framework框架开发的共享软件调查
8. 用飞信脱框运行访问数据库的软件时出错的解决方法
9. 关于在AJAX网页中使用Google Adsense
10. 穿透显示功能的实现方法
最新评论
1. re: 阿里SaaS钱掌柜免费的背后
关注
--林志标
2. re: 36选7中奖概率(给体彩爱好者)
qwert yuiop
--619127641
3. re: 使用飞信脱.net framework框架开发的共享软件调查
飞信毕竟是电信买的软件,用这个来开发商业软件基本上是不现实的 如果微软能够打开.net的封锁,那么飞信基本上是用不到的 如果微软的下一代系统能够早点普及的话,那么现在市场上基本上不需要用这样的形式了。...
--nealbox
4. re: Excel/Word 双击要等很久才能打开的解决
就是word文档打开要很长的时间.
--he龙
5. re: TV SET MES系统
你好!能否提供“MES”系统的软件给我?我想安装在我的电脑。在此,深表感谢!
--joyce-
阅读排行榜
1. 针式电子书下载列表(暂时)(11505)
2. 数据库表设计模板(5722)
3. C#/C++获取CPU和硬盘系列号的源代码(5635)
4. 针式背单词V2.0版-完全免费!(4605)
5. 建立个人知识引擎的重要性(3321)
评论排行榜
1. 如何定位自己(19)
2. 建立个人知识引擎的重要性(17)
3. 使用数据库的机制来确保数据的正确性(16)
4. Vs.net2005强势功能:数据源(16)
5. 别让代码执行不必要的路径和让数据绑定执行了多次(16)
限制文本框每行输入的字符数的C#代码
今天在做IBM AS400 DB2和Excle加载项一个数据交换碰到的一个问题:
限制每行输入的字符数。以下为源代码(textBox1命名保留为缺省为方便您测试使用)
有用的两个函数:
1、计算字符串的出现次数
2、计算英汉混合字符串的字节数
1
private
void
textBox1_KeyPress(
object
sender, System.Windows.Forms.KeyPressEventArgs e)
2
{
3
const
int
MaxLength
=
10
;
4
char
chrKeyIn;
5
string
strLastCurrentFocus,strCurrentLine;
6
int
intCurrentLine;
7
//
计算当前行号
8
strLastCurrentFocus
=
this
.textBox1.Text.Substring(
0
,
this
.textBox1.SelectionStart);
9
intCurrentLine
=
RepeatNumber (strLastCurrentFocus,
"
\r\n
"
);
10
//
计算当前行的字节数
11
chrKeyIn
=
e.KeyChar;
12
strCurrentLine
=
this
.textBox1.Lines[intCurrentLine
-
1
]
+
chrKeyIn;
13
if
(LenB(strCurrentLine)
>
MaxLength)
14
{
15
if
(
false
==
System.Char.IsControl(chrKeyIn) )
16
e.Handled
=
true
;
17
}
18
}
19
//
计算字符串的出现次数
20
private
int
RepeatNumber(
string
strSource,
string
strFind)
21
{
22
int
intLastFind;
23
int
intNumber;
24
intNumber
=
1
;
25
intLastFind
=
strSource.IndexOf(strFind);
26
while
(intLastFind
>
0
)
27
{
28
intNumber
++
;
29
intLastFind
=
strSource.IndexOf(strFind,intLastFind
+
1
);
30
}
31
return
intNumber;
32
}
33
//
计算英汉混合字符串的字节数
34
private
int
LenB(
string
strSource)
35
{
36
int
intLength;
37
char
[] aryLenB
=
strSource.ToCharArray() ;
38
intLength
=
0
;
39
foreach
(
char
chrLenB
in
aryLenB)
40
{
41
if
((
int
)chrLenB
>
255
)
42
intLength
+=
2
;
43
else
44
intLength
++
;
45
}
46
return
intLength;
47
}
posted on 2005-09-13 14:18
新悟空
阅读(2542)
评论(8)
编辑
收藏
网摘
Comments
#1楼
gifted[未注册用户]
Posted @ 2005-09-13 16:52
我是个初学者,不过我想问一下是不是第十二行写错了。
回复
引用
#2楼
gifted[未注册用户]
Posted @ 2005-09-13 17:08
还有一个问题,如果selectionStart的位置人为的改变了呢,那样长度会不会变化
我还作了个小试验我放了两个textbox,在第一个textbox的keypress事件中加入
string str;
str=this.textBox1.Text.Substring(0,this.textBox1.SelectionStart);
this.textBox2.Text=str;
为什么当按了第二个字符时,textbox2中才显示textbox1中的第一个字符
回复
引用
#3楼
[
楼主
]
悟
Posted @ 2005-09-13 17:57
因为按第二个字符时this.textBox1.Text为第一字符,即
按了第二个字符时的keypress后(没有取消的话)才为两次输入的字符
另:第十二行没有写错,这是C#,不是VB的代码
回复
引用
查看
#4楼
g555[未注册用户]
Posted @ 2005-09-14 09:43
粘贴的进来的数据不能限制
回复
引用
#5楼
[
楼主
]
悟
Posted @ 2005-09-14 09:49
g555,谢谢发现该Bug。目前,还只能在数据上载前再做一次数据Check(治标方法)
回复
引用
查看
#6楼
laserman[未注册用户]
Posted @ 2005-09-14 09:54
//计算英汉混合字符串的字节数
用Encoding好像更合理
回复
引用
#7楼
[
楼主
]
悟
Posted @ 2005-09-14 11:00
1、使用Encoding来计算字符串的字节数确实更佳。
2、实际使用中因为要符合As400字符串长度计算要求,目前只找到此方法;即要计算汉字的出现次数
回复
引用
查看
#8楼
分发[未注册用户]
Posted @ 2006-02-09 12:03
计算英汉混合字符串的字节数 中用foreach来计算是错的,如果全部是中文则不正确
回复
引用
刷新评论
切换模板
发表评论
昵称:
[登录]
[注册]
主页:
邮箱:
(仅博主可见)
验证码:
看不清,换一个
评论内容:
登录
注册
[使用Ctrl+Enter键快速提交评论]
0
235947
导航:
网站首页
社区
新闻
博问
闪存
网摘
招聘
找找看
Google搜索
China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
China-Pub 计算机绝版图书按需印刷服务
相关文章:
最新IT新闻:
19岁天才黑客发布首个iPhone 3GS破解软件
新浪邮箱大本营粉墨登场!Sina.cn开放注册
IE市场份额首次跌破60%
Google App Engine宕机6小时——云的安全在哪里?
微软新推社交网站Windows Live Planet
相关链接: