C# 輸入法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 | /* 參考來源: http://reflector.webtropy.com/default.aspx/4@0/4@0/untmp/DEVDIV_TFS/Dev10/Releases/RTMRel/ndp/fx/src/WinForms/Managed/System/WinForms/InputLanguage@cs/1305376/InputLanguage@cs http://msdn.microsoft.com/en-us/library/ms171548.aspx http://msdn.microsoft.com/en-us/library/syy068tk.aspx http://go4answers.webhost4life.com/Example/changing-keyboard-layout-issue-218141.aspx http://www.csharp-examples.net/culture-names/ http://www.codeproject.com/Articles/8980/Instantly-Changing-Language-in-the-Form http://www.koders.com/csharp/fid96D51DDF229ADAF1470D43CFE9C6277B051AC885.aspx?s=file#L2 http://msdn.microsoft.com/en-us/library/system.windows.forms.inputlanguage%28v=vs.71%29.aspx http://blogs.msdn.com/b/snippets/archive/2008/12/31/how-to-change-input-language-programmatically.aspx http://social.msdn.microsoft.com/Forums/en-US/winforms/thread/c7a82a6a-763e-424b-84e0-496caa9cfb4d/ */ using System; using System.Collections.Generic; using System.Collections; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices; using Microsoft.Win32; using System.Globalization; namespace InputLanguageDemo { /// <summary> /// 20120521 Geovin Du /// Csharp 輪入法操作 來源網絡 /// 塗聚文 /// </summary> public partial class Form1 : Form { #region //[DllImport("user32")] //private static extern uint ActivateKeyboardLayout(uint hkl, uint Flags); //[DllImport("user32")] //private static extern uint LoadKeyboardLayout(string pwszKLID, uint Flags); //[DllImport("user32")] //private static extern uint GetKeyboardLayoutList(int nBuff, uint[] List); //private static Hashtable FImes; //public static uint KLF_ACTIVATE = 1; #endregion /// <summary> /// /// </summary> public Form1() { InitializeComponent(); //半角,全角問題 if ( this .ImeMode != ImeMode.Hangul) this .ImeMode = ImeMode.Hangul; } /// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Form1_Load( object sender, EventArgs e) { ComboboxItem item = new ComboboxItem(); InputLanguageCollection ilc = InputLanguage.InstalledInputLanguages; foreach (InputLanguage il in ilc) { comboBox1.Items.Add(il.LayoutName); } comboBox1.SelectedIndex = InputLanguage.InstalledInputLanguages.IndexOf(InputLanguage.CurrentInputLanguage); //CULTURE SPEC.CULTURE ENGLISH NAME // get culture names List< string > list = new List< string >(); foreach (CultureInfo ci in CultureInfo.GetCultures(CultureTypes.AllCultures)) { string specName = "(none)" ; try { specName = CultureInfo.CreateSpecificCulture(ci.Name).Name; } catch { } list.Add(String.Format( "{0,-12}{1,-12}{2}" , ci.Name, specName, ci.EnglishName)); //1 //comboBox2.Items.Add(new Item(ci.Name + "/" + specName + "/" + ci.EnglishName, ci.EnglishName)); //comboBox2.SelectedIndex = 0; //item.Text = "22"; //item.Value = "2"; //comboBox2.Items.Add(item); } list.Sort(); // sort by name //2 comboBox2.DataSource = list; string [] languagename = new string [] { "王码五笔型86版" , "五笔型86版" }; //存在选择最后的关键字 for ( int i = 0; i < languagename.Length; i++) { //设置当前输入法 foreach (InputLanguage iL in InputLanguage.InstalledInputLanguages) { //1 //if (iL.LayoutName == "中文 (简体) - 王码五笔型86版") //{ // InputLanguage.CurrentInputLanguage = iL; // break; //} //2 if (iL.LayoutName.Contains(languagename[i])) { InputLanguage.CurrentInputLanguage = iL; ////获取当前输入法信息 break ; } } } //获取当前输入法信息 InputLanguage CurrentInput = InputLanguage.CurrentInputLanguage; this .textBox1.Text = CurrentInput.LayoutName; //获取输入法的语言区域 this .textBox3.Text = CurrentInput.Culture.DisplayName; //获取默认的输入法信息 InputLanguage DefaultInput = InputLanguage.DefaultInputLanguage; this .textBox2.Text = DefaultInput.LayoutName; } /// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void comboBox1_SelectedIndexChanged( object sender, EventArgs e) { InputLanguage il = InputLanguage.InstalledInputLanguages[comboBox1.SelectedIndex]; InputLanguage.CurrentInputLanguage = il; } /// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ChangeInput( object sender, System.Windows.Forms.InputLanguageChangedEventArgs e) { InputLanguage il = e.InputLanguage; int i = InputLanguage.InstalledInputLanguages.IndexOf(il); if (i >= 0 && i < InputLanguage.InstalledInputLanguages.Count) { comboBox1.SelectedIndex = i; } } #region ////设定当前Ime,使用方法Ime.SetImeName("中文 (简体) - 拼音); //public static void SetImeName(string ImeName) //{ // //字符串形式 // if (FImes == null) // GetImes(); // uint id = Convert.ToUInt32(FImes[ImeName]); // SetIme(id); //} //public static void SetIme(uint ImeId) //{ // //Id样式 // if (ImeId > 0) // ActivateKeyboardLayout(ImeId, KLF_ACTIVATE); //} ////获得所有的Ime列表 //public static Hashtable GetImes() //{ // if (FImes == null) // FImes = new Hashtable(); // else // return FImes; // uint[] KbList = new uint[64]; // uint TotalKbLayout = GetKeyboardLayoutList(64, KbList); // for (int i = 0; i < TotalKbLayout; i++) // { // string RegKey = String.Format("System//CurrentControlSet//Control//Keyboard Layouts//{0:X8}", KbList[i]); // RegistryKey rk = Registry.LocalMachine.OpenSubKey(RegKey); // if (rk == null) // continue; // string ImeName = (string)rk.GetValue("layout text"); // if (ImeName == null) // continue; // FImes.Add(ImeName, KbList[i]); // } // return FImes; //} #endregion #region /// <summary> /// Changing Current Input Language to a next installed language /// </summary> public void ChangeInputLanguage() { // Nothing to do if there is only one Input Language supported: if (InputLanguage.InstalledInputLanguages.Count == 1) return ; // Get index of current Input Language int currentLang = InputLanguage.InstalledInputLanguages.IndexOf(InputLanguage.CurrentInputLanguage); // Calculate next Input Language InputLanguage nextLang = ++currentLang == InputLanguage.InstalledInputLanguages.Count ? InputLanguage.InstalledInputLanguages[0] : InputLanguage.InstalledInputLanguages[currentLang]; // Change current Language to the calculated: ChangeInputLanguage(nextLang); } /// <summary> /// Changing current Input Language to a new one passed in the param /// </summary> /// <param name="ISOLang">ISO Culture name string code e.g. "en" for English</param> public void ChangeInputLanguage( string ISOLang) { // Convert ISO Culture name to InputLanguage object. Be aware: if ISO is not supported // ArgumentException will be invoked here InputLanguage nextLang = InputLanguage.FromCulture( new System.Globalization.CultureInfo(ISOLang)); ChangeInputLanguage(nextLang); } /// <summary> /// Changing current Input Language to a new one passed in the param /// </summary> /// <param name="LangID">Integer Culture code e.g. 1033 for English</param> public void ChangeInputLanguage( int LangID) { // Convert Integer Culture code to InputLanguage object. Be aware: if Culture code is not supported // ArgumentException will be invoked here InputLanguage nextLang = InputLanguage.FromCulture( new System.Globalization.CultureInfo(LangID)); ChangeInputLanguage(nextLang); } /// <summary> /// Changing current Input Language to a new one passed in the param /// </summary> /// <param name="InputLang">New Input Language as InputLanguage object</param> public void ChangeInputLanguage(InputLanguage InputLang) { // Check is this Language really installed. Raise exception to warn if it is not: if (InputLanguage.InstalledInputLanguages.IndexOf(InputLang) == -1) throw new ArgumentOutOfRangeException(); // InputLAnguage changes here: InputLanguage.CurrentInputLanguage = InputLang; } #endregion /// <summary> /// 设置当前输入框的输入法 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void textBox1_Enter( object sender, EventArgs e) { string [] languagename = new string [] { "拼音" , "中文" , "五笔" }; for ( int i = 0; i < languagename.Length; i++) { foreach (InputLanguage lang in InputLanguage.InstalledInputLanguages) { if (lang.LayoutName.Contains(languagename[i])) { InputLanguage.CurrentInputLanguage = lang; ////获取当前输入法信息 this .textBox1.Text = lang.LayoutName ; break ; } } } } } /// <summary> /// /// </summary> public class Item { public string Name; public string Value; public Item( string name, string value) { Name = name; Value = value; } public override string ToString() { // Generates the text shown in the combo box return Name; } } /// <summary> /// /// </summary> public class ComboboxItem { public string Text { get ; set ; } public object Value { get ; set ; } public override string ToString() { return Text; } } } |
CULTURE SPEC.CULTURE ENGLISH NAME
--------------------------------------------------------------
Invariant Language (Invariant Country)
af af-ZA Afrikaans
af-ZA af-ZA Afrikaans (South Africa)
ar ar-SA Arabic
ar-AE ar-AE Arabic (U.A.E.)
ar-BH ar-BH Arabic (Bahrain)
ar-DZ ar-DZ Arabic (Algeria)
ar-EG ar-EG Arabic (Egypt)
ar-IQ ar-IQ Arabic (Iraq)
ar-JO ar-JO Arabic (Jordan)
ar-KW ar-KW Arabic (Kuwait)
ar-LB ar-LB Arabic (Lebanon)
ar-LY ar-LY Arabic (Libya)
ar-MA ar-MA Arabic (Morocco)
ar-OM ar-OM Arabic (Oman)
ar-QA ar-QA Arabic (Qatar)
ar-SA ar-SA Arabic (Saudi Arabia)
ar-SY ar-SY Arabic (Syria)
ar-TN ar-TN Arabic (Tunisia)
ar-YE ar-YE Arabic (Yemen)
az az-Latn-AZ Azeri
az-Cyrl-AZ az-Cyrl-AZ Azeri (Cyrillic, Azerbaijan)
az-Latn-AZ az-Latn-AZ Azeri (Latin, Azerbaijan)
be be-BY Belarusian
be-BY be-BY Belarusian (Belarus)
bg bg-BG Bulgarian
bg-BG bg-BG Bulgarian (Bulgaria)
bs-Latn-BA bs-Latn-BA Bosnian (Bosnia and Herzegovina)
ca ca-ES Catalan
ca-ES ca-ES Catalan (Catalan)
cs cs-CZ Czech
cs-CZ cs-CZ Czech (Czech Republic)
cy-GB cy-GB Welsh (United Kingdom)
da da-DK Danish
da-DK da-DK Danish (Denmark)
de de-DE German
de-AT de-AT German (Austria)
de-DE de-DE German (Germany)
de-CH de-CH German (Switzerland)
de-LI de-LI German (Liechtenstein)
de-LU de-LU German (Luxembourg)
dv dv-MV Divehi
dv-MV dv-MV Divehi (Maldives)
el el-GR Greek
el-GR el-GR Greek (Greece)
en en-US English
en-029 en-029 English (Caribbean)
en-AU en-AU English (Australia)
en-BZ en-BZ English (Belize)
en-CA en-CA English (Canada)
en-GB en-GB English (United Kingdom)
en-IE en-IE English (Ireland)
en-JM en-JM English (Jamaica)
en-NZ en-NZ English (New Zealand)
en-PH en-PH English (Republic of the Philippines)
en-TT en-TT English (Trinidad and Tobago)
en-US en-US English (United States)
en-ZA en-ZA English (South Africa)
en-ZW en-ZW English (Zimbabwe)
es es-ES Spanish
es-AR es-AR Spanish (Argentina)
es-BO es-BO Spanish (Bolivia)
es-CL es-CL Spanish (Chile)
es-CO es-CO Spanish (Colombia)
es-CR es-CR Spanish (Costa Rica)
es-DO es-DO Spanish (Dominican Republic)
es-EC es-EC Spanish (Ecuador)
es-ES es-ES Spanish (Spain)
es-GT es-GT Spanish (Guatemala)
es-HN es-HN Spanish (Honduras)
es-MX es-MX Spanish (Mexico)
es-NI es-NI Spanish (Nicaragua)
es-PA es-PA Spanish (Panama)
es-PE es-PE Spanish (Peru)
es-PR es-PR Spanish (Puerto Rico)
es-PY es-PY Spanish (Paraguay)
es-SV es-SV Spanish (El Salvador)
es-UY es-UY Spanish (Uruguay)
es-VE es-VE Spanish (Venezuela)
et et-EE Estonian
et-EE et-EE Estonian (Estonia)
eu eu-ES Basque
eu-ES eu-ES Basque (Basque)
fa fa-IR Persian
fa-IR fa-IR Persian (Iran)
fi fi-FI Finnish
fi-FI fi-FI Finnish (Finland)
fo fo-FO Faroese
fo-FO fo-FO Faroese (Faroe Islands)
fr fr-FR French
fr-BE fr-BE French (Belgium)
fr-CA fr-CA French (Canada)
fr-FR fr-FR French (France)
fr-CH fr-CH French (Switzerland)
fr-LU fr-LU French (Luxembourg)
fr-MC fr-MC French (Principality of Monaco)
gl gl-ES Galician
gl-ES gl-ES Galician (Galician)
gu gu-IN Gujarati
gu-IN gu-IN Gujarati (India)
he he-IL Hebrew
he-IL he-IL Hebrew (Israel)
hi hi-IN Hindi
hi-IN hi-IN Hindi (India)
hr hr-HR Croatian
hr-BA hr-BA Croatian (Bosnia and Herzegovina)
hr-HR hr-HR Croatian (Croatia)
hu hu-HU Hungarian
hu-HU hu-HU Hungarian (Hungary)
hy hy-AM Armenian
hy-AM hy-AM Armenian (Armenia)
id id-ID Indonesian
id-ID id-ID Indonesian (Indonesia)
is is-IS Icelandic
is-IS is-IS Icelandic (Iceland)
it it-IT Italian
it-CH it-CH Italian (Switzerland)
it-IT it-IT Italian (Italy)
ja ja-JP Japanese
ja-JP ja-JP Japanese (Japan)
ka ka-GE Georgian
ka-GE ka-GE Georgian (Georgia)
kk kk-KZ Kazakh
kk-KZ kk-KZ Kazakh (Kazakhstan)
kn kn-IN Kannada
kn-IN kn-IN Kannada (India)
ko ko-KR Korean
kok kok-IN Konkani
kok-IN kok-IN Konkani (India)
ko-KR ko-KR Korean (Korea)
ky ky-KG Kyrgyz
ky-KG ky-KG Kyrgyz (Kyrgyzstan)
lt lt-LT Lithuanian
lt-LT lt-LT Lithuanian (Lithuania)
lv lv-LV Latvian
lv-LV lv-LV Latvian (Latvia)
mi-NZ mi-NZ Maori (New Zealand)
mk mk-MK Macedonian
mk-MK mk-MK Macedonian (Former Yugoslav Republic of Macedonia)
mn mn-MN Mongolian
mn-MN mn-MN Mongolian (Cyrillic, Mongolia)
mr mr-IN Marathi
mr-IN mr-IN Marathi (India)
ms ms-MY Malay
ms-BN ms-BN Malay (Brunei Darussalam)
ms-MY ms-MY Malay (Malaysia)
mt-MT mt-MT Maltese (Malta)
nb-NO nb-NO Norwegian, Bokmal (Norway)
nl nl-NL Dutch
nl-BE nl-BE Dutch (Belgium)
nl-NL nl-NL Dutch (Netherlands)
nn-NO nn-NO Norwegian, Nynorsk (Norway)
no nb-NO Norwegian
ns-ZA ns-ZA Northern Sotho (South Africa)
pa pa-IN Punjabi
pa-IN pa-IN Punjabi (India)
pl pl-PL Polish
pl-PL pl-PL Polish (Poland)
pt pt-BR Portuguese
pt-BR pt-BR Portuguese (Brazil)
pt-PT pt-PT Portuguese (Portugal)
quz-BO quz-BO Quechua (Bolivia)
quz-EC quz-EC Quechua (Ecuador)
quz-PE quz-PE Quechua (Peru)
ro ro-RO Romanian
ro-RO ro-RO Romanian (Romania)
ru ru-RU Russian
ru-RU ru-RU Russian (Russia)
sa sa-IN Sanskrit
sa-IN sa-IN Sanskrit (India)
se-FI se-FI Sami (Northern) (Finland)
se-NO se-NO Sami (Northern) (Norway)
se-SE se-SE Sami (Northern) (Sweden)
sk sk-SK Slovak
sk-SK sk-SK Slovak (Slovakia)
sl sl-SI Slovenian
sl-SI sl-SI Slovenian (Slovenia)
sma-NO sma-NO Sami (Southern) (Norway)
sma-SE sma-SE Sami (Southern) (Sweden)
smj-NO smj-NO Sami (Lule) (Norway)
smj-SE smj-SE Sami (Lule) (Sweden)
smn-FI smn-FI Sami (Inari) (Finland)
sms-FI sms-FI Sami (Skolt) (Finland)
sq sq-AL Albanian
sq-AL sq-AL Albanian (Albania)
sr sr-Latn-CS Serbian
sr-Cyrl-BA sr-Cyrl-BA Serbian (Cyrillic) (Bosnia and Herzegovina)
sr-Cyrl-CS sr-Cyrl-CS Serbian (Cyrillic, Serbia)
sr-Latn-BA sr-Latn-BA Serbian (Latin) (Bosnia and Herzegovina)
sr-Latn-CS sr-Latn-CS Serbian (Latin, Serbia)
sv sv-SE Swedish
sv-FI sv-FI Swedish (Finland)
sv-SE sv-SE Swedish (Sweden)
sw sw-KE Kiswahili
sw-KE sw-KE Kiswahili (Kenya)
syr syr-SY Syriac
syr-SY syr-SY Syriac (Syria)
ta ta-IN Tamil
ta-IN ta-IN Tamil (India)
te te-IN Telugu
te-IN te-IN Telugu (India)
th th-TH Thai
th-TH th-TH Thai (Thailand)
tn-ZA tn-ZA Tswana (South Africa)
tr tr-TR Turkish
tr-TR tr-TR Turkish (Turkey)
tt tt-RU Tatar
tt-RU tt-RU Tatar (Russia)
uk uk-UA Ukrainian
uk-UA uk-UA Ukrainian (Ukraine)
ur ur-PK Urdu
ur-PK ur-PK Urdu (Islamic Republic of Pakistan)
uz uz-Latn-UZ Uzbek
uz-Cyrl-UZ uz-Cyrl-UZ Uzbek (Cyrillic, Uzbekistan)
uz-Latn-UZ uz-Latn-UZ Uzbek (Latin, Uzbekistan)
vi vi-VN Vietnamese
vi-VN vi-VN Vietnamese (Vietnam)
xh-ZA xh-ZA Xhosa (South Africa)
zh-CN zh-CN Chinese (People's Republic of China)
zh-HK zh-HK Chinese (Hong Kong S.A.R.)
zh-CHS (none) Chinese (Simplified)
zh-CHT (none) Chinese (Traditional)
zh-MO zh-MO Chinese (Macao S.A.R.)
zh-SG zh-SG Chinese (Singapore)
zh-TW zh-TW Chinese (Taiwan)
zu-ZA zu-ZA Zulu (South Africa)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
2011-05-22 C# 验证中国电话号码,电子邮件,网址,身份证号码等等