CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

请教,如何控制textbox中输入的字母转换成大写的问题

楼主sprite18(sprite18)2006-12-04 10:43:15 在 .NET技术 / C# 提问

我现在的问题是,除了c和i其他的都转换成大写  
   
  c和i输入的是大写就是大写,输入的是小写就是小写.  
   
  而其他的都转成大写 问题点数:20、回复次数:18Top

1 楼zjmotion(旁门左道)回复于 2006-12-04 11:31:02 得分 15

this.textBox1.Text   =   this.textBox1.Text.Replace("c","C").Replace("i","I").ToUpper().Replace("C","c").Replace("I","i");Top

2 楼Tenner(BE.Tenner)回复于 2006-12-04 11:33:12 得分 0

楼上正解Top

3 楼Snowdust(雪尘)回复于 2006-12-04 11:39:03 得分 0

private   void   textBox1_KeyPress(object   sender,   KeyPressEventArgs   e)  
  {  
  if   (!(e.KeyChar   ==   'c'   ||   e.KeyChar   ==   'C'   ||   e.KeyChar   ==   'i'   ||   e.KeyChar   ==   'I'))  
  {  
  e.KeyChar   =   Convert.ToChar(e.KeyChar.ToString().ToUpper());  
  }  
  }Top

4 楼huruihappy()回复于 2006-12-04 11:47:14 得分 0

没这么复杂吧     在textBox属性选项里面有CharacterCasing这个属性有3个选项   分别代表正常NORMAL     全大写UPPER     全小写LOWER```Top

5 楼huruihappy()回复于 2006-12-04 11:47:27 得分 0

不要把问题想复杂了`Top

6 楼IFocusYou(易寒)回复于 2006-12-04 11:50:35 得分 0

<script   type="text/javascript">  
          function   aa(obj)    
          {  
                 
                var   temp   =   "";  
                  for(var   i=0;i<obj.value.length;i++)  
                  {  
                         
                        if(obj.value.charAt(i).toUpperCase()   !=     "I"   &&   obj.value.charAt(i).toUpperCase()   !=   "C")  
                        {    
                              temp   +=   obj.value.charAt(i).toUpperCase();    
                        }  
                        else  
                        {  
                         
                          temp   +=   obj.value.charAt(i);  
                        }    
                  }  
                  obj.value   =   temp;  
             
          }    
   
          </script>  
   
   
    <asp:TextBox   ID="TextBox1"   runat="server"   onblur="aa(this)"></asp:TextBox>Top

7 楼IFocusYou(易寒)回复于 2006-12-04 12:02:53 得分 0

修正当输入入大写I时的错误。  
  <script   type="text/javascript">  
          function   aa(obj)    
          {  
                 
                var   temp   =   "";  
                  for(var   i=0;i<obj.value.length;i++)  
                  {  
                         
                        if(obj.value.charAt(i)!=     "I"   &&   obj.value.charAt(i)!=   "C"   &&   obj.value.charAt(i)!="i"   &&   obj.value.charAt(i)   !=   "c")  
                        {    
                              temp   +=   obj.value.charAt(i).toUpperCase();    
                        }  
                        else  
                        {  
                         
                          temp   +=   obj.value.charAt(i);  
                        }    
                  }  
                  obj.value   =   temp;  
             
          }    
   
          </script>  
   
   
    <asp:TextBox   ID="TextBox1"   runat="server"   onblur="aa(this)"></asp:TextBox>  
  Top

8 楼zjmotion(旁门左道)回复于 2006-12-05 10:36:56 得分 0

TO:  
  没这么复杂吧     在textBox属性选项里面有CharacterCasing这个属性有3个选项   分别代表正常NORMAL     全大写UPPER     全小写LOWER```  
   
  -----------------  
   
  请看清楚LZ的问题~~~Top

9 楼sprite18(sprite18)回复于 2006-12-05 10:53:58 得分 0

TO   zjmotion(旁门左道)    
   
  谢谢这位朋友,可您的程序有点问题,我输入其他的字母都能转成答谢,输入小写的c也没问题,可输入答谢的C,却转成了小写的cTop

10 楼sprite18(sprite18)回复于 2006-12-05 10:54:36 得分 0

TO   Snowdust(雪尘)    
   
  e.KeyChar是不能给付值的Top

11 楼sprite18(sprite18)回复于 2006-12-05 10:57:22 得分 0

错了  
   
  (旁门左道)的程序没有问题  
   
  是我把C   I  
   
  改成了C,I  
   
  这两个字符什么区别啊?  
   
  我换成普通的答谢就有问题,用您这个就没有问题??Top

12 楼fdlm_dark()回复于 2006-12-05 11:09:22 得分 0

因为是全角。所以不会替换呵呵。挺巧妙的办法。Top

13 楼zjmotion(旁门左道)回复于 2006-12-05 11:26:31 得分 0

这个方法是典型的"旁门左道",嘿嘿,楼上的朋友说的对,我在这里用的是全角和半角区分.写成这样可能就好理解了:  
   
  string   restr   =   this.textBox1.Text;  
   
  //将小写c和i替换成别的字符  
  restr   =   restr.Replace("c","#").Replace("i","@");  
   
  //将字符转换为大写  
  restr   =   restr.ToUpper();  
   
  //将字符转回小写的c和i  
  restr   =   restr.Replace("#","c").Replace("@","i");  
  this.textBox1.Text   =   restr;  
   
  须考虑到的是,中间的替换字符(@\#)必须是用户几乎不会输入的字符.Top

14 楼sprite18(sprite18)回复于 2006-12-05 12:00:27 得分 0

谢谢  
   
  但现在还有个小问题  
   
  输入其他字符,他自动转换后,光标就跑到了textbox1.text的第一位,而不是当前输入的最后位了  
   
  咋整?Top

15 楼fdlm_dark()回复于 2006-12-05 13:40:53 得分 5

txtEmployeeID.SelectionStart   =   txtEmployeeID.Text.Length;  
                                  txtEmployeeID.SelectionLength   =   0;Top

16 楼sonyicn(翻口皮)回复于 2006-12-05 14:41:45 得分 0

旁门左道果然巧妙Top

17 楼zjmotion(旁门左道)回复于 2006-12-05 20:38:58 得分 0

txtEmployeeID.SelectionStart   =   txtEmployeeID.Text.Length;  
                                  txtEmployeeID.SelectionLength   =   0;  
   
  --------------  
   
  哈哈,fdlm_dark()   的方法也巧妙~Top

18 楼fdlm_dark()回复于 2006-12-06 17:50:16 得分 0

触摸屏上用遇到过这个问题。。。呵呵。Top

相关问题

关键词

得分解答快速导航

  • 帖主:sprite18
  • zjmotion
  • fdlm_dark

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo