悟空-简单就好
.net企业级应用研究
考虑最复杂的情况
开发出最简单的实现
多种方式,帮你快速找到文档(知识点)!
导航
博客园
首页
联系
订阅
管理
公告
专业个人知识管理PKM软件提供商
与我联系
发短消息
搜索
常用链接
我的随笔
我的空间
我的短信
我的评论
更多链接
我的参与
我的新闻
最新评论
我的标签
留言簿
(12)
给我留言
查看留言
我参与的团队
厦门.NET俱乐部(0/233)
福州.NET俱乐部(0/517)
随笔档案
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)
积分与排名
积分 - 110399
排名 - 348
最新随笔
1. COM+异常:系统找不到指定的文件。 (异常来自 HRESULT:0x80070002)
2. amteam网站的出错页面和讨论大型网站架构
3. 一种在线注册的方法
4. 使用飞信脱.net framework框架开发的共享软件调查
5. 用飞信脱框运行访问数据库的软件时出错的解决方法
6. 关于在AJAX网页中使用Google Adsense
7. 穿透显示功能的实现方法
8. Excel/Word 双击要等很久才能打开的解决
9. 类似易表算量的数据上方标注
10. 获取Excel2007的加载宏的VBA源代码
最新评论
1. re: 使用飞信脱.net framework框架开发的共享软件调查
正在帮妈妈做个可以随身带的小型财务软件,因为只懂.NET 所以正在用飞信脱netframework框架开发,数据库采用sqlite3
其实内心很想用vc开发非托管的代码 可惜还不会
--犇牛牛
2. re: 用飞信脱框运行访问数据库的软件时出错的解决方法
还是在你这找到正解 一般第一种方法就行了 就是缺少Microsoft.VC80.CRT.manifest文件 十分感谢~~~
--犇牛牛
3. re: Word是保存网页最好的工具
个人知识管理好的,但直接用word保存网页不好,用网童保存网页,一键生成word文件,很快,然后用个人知识管理,这样方便
--不停的实践者
阅读排行榜
1. 针式电子书下载列表(暂时)(10801)
2. C#/C++获取CPU和硬盘系列号的源代码(5071)
3. 数据库表设计模板(4381)
4. 针式背单词V2.0版-完全免费!(3997)
5. 建立个人知识引擎的重要性(3201)
评论排行榜
1. 如何定位自己(19)
2. 建立个人知识引擎的重要性(17)
3. 使用数据库的机制来确保数据的正确性(16)
4. 别让代码执行不必要的路径和让数据绑定执行了多次(16)
5. Vs.net2005强势功能:数据源(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
针式个人知识库管理
阅读(2408)
评论(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来计算是错的,如果全部是中文则不正确
回复
引用
新用户注册
刷新评论列表
标题
姓名
主页
Email
(博主才能看到)
验证码
*
看不清,换一张
[
登录
][
注册
]
内容(请不要发表任何与政治相关的内容)
博客园首页
新闻频道
社区
小组
博问
网摘
闪存
Remember Me?
登录
使用高级评论
新用户注册
返回页首
恢复上次提交
[使用Ctrl+Enter键可以直接提交]
成果网帮您增加网站收入
相关文章:
C#下如何实现服务器+客户端的聊天程序
支持掩码输入的 .Net 2.0 Console 可用于使用掩码回显 password 的字符
多行文本框限制输入字符长度(两种方法)
限制文本框每行输入的字符数的C#代码 (转)
如何实现文本框焦点自动跳转及通过回车键提交表单
控制文本框字符输入长度[完美版]
相关链接:
最新IT新闻:
JavaScript将成Silverlight的最大对手?
没有谷歌就活不下去的四个网站
Google 10周岁生日
祝Google 10周岁生日快乐
Google十年市值达1500亿美元 创造奇迹