请教,如何控制textbox中输入的字母转换成大写的问题
我现在的问题是,除了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




