问题描述
目前我的页面中有textBox1,button1,button2代码部分为:namespaceProgram{publicpartialclassForm1:Form{[DllImport("user32",EntryPoint="FindWindow",SetLastError=false,CharSet=CharSet.Auto,ExactSpelling=false,CallingConvention=CallingConvention.StdCall)]publicstaticexternintFindWindow(stringIpClassName,stringIpWindowName);[DllImport("user32",EntryPoint="SetForegroundWindow",SetLastError=false,CharSet=CharSet.Auto,ExactSpelling=false,CallingConvention=CallingConvention.StdCall)]publicstaticexternintSetForegroundWindow(IntPtrhWnd);publicForm1(){InitializeComponent();}privatevoidForm1_Load(objectsender,EventArgse){}privatevoidbutton1_Click(objectsender,EventArgse){ProcessProcess=newProcess();Process.Start("C:\WINDOWS\system32\OSK.exe");}privatevoidbutton2_Click(objectsender,EventArgse){IntPtrhwnd=(IntPtr)FindWindow(null,"123.txt-记事本");SetForegroundWindow(hwnd);SendKeys.Send("先用和FindWindow这个WindowsAPI函数找到你要打字的窗体,让后用SetForegroundWindow激活这个窗体,"+"让后调用SendKeys.send直接发送字符串就行了,给你举个例子吧:nr"+"先在桌面新建一个文本文件,命名为:123.txt,然后双击打开123.txt然后运行本程序,单击button1"+"效果不错吧,是你想要的吧,O(∩_∩)O哈!");}}}目前button1在打开系统软键盘的时,只能在textbox1中输入英文,无法直接输入中文。而button2的功能是对记事本输入内容,不符合我的意图。我是想在打开软键盘的情况下,直接可以对文本框输入任意的中文,请各位大虾帮忙解决
解决方案
解决方案二:
其实你可以对文本框输入的字符校验,判断是否输入中文,否则不能输入,判断中文的方法:1.protectedboolIsChineseLetter(stringinput,intindex)2.{3.intcode=0;4.intchfrom=Convert.ToInt32("4e00",16);//范围(0x4e00~0x9fff)转换成int(chfrom~chend)5.intchend=Convert.ToInt32("9fff",16);6.if(input!="")7.{8.code=Char.ConvertToUtf32(input,index);//获得字符串input中指定索引index处字符unicode编码9.10.if(code>=chfrom&&code<=chend)11.{12.returntrue;//当code在中文范围内返回true13.}14.else15.{16.returnfalse;//当code不在中文范围内返回false17.}18.}19.returnfalse;20.}21.方法二:22.publicboolIsChina(stringCString)23.{24.boolBoolValue=false;25.for(inti=0;i<CString.Length;i++)26.{27.if(Convert.ToInt32(Convert.ToChar(CString.Substring(i,1)))<Convert.ToInt32(Convert.ToChar(128)))28.{29.BoolValue=false;30.}31.else32.{33.returnBoolValue=true;34.}35.}36.returnBoolValue;37.}
解决方案三:
解决方案四:
问题是:我现在只是打开了软键盘,无法打出中文啊,只能打英文,在输入法那边怎么控制呢?
解决方案五:
用Windows系统带的屏幕键盘向窗体文本框输入中文没有问题啊
解决方案六:
那是你输入法的问题吧