最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#中Winfrom默認輸入法的設(shè)置方法

 更新時間:2015年05月18日 09:40:54   作者:永遠愛好寫程序  
這篇文章主要介紹了C#中Winfrom默認輸入法的設(shè)置方法,以實例形式較為詳細的分析了C#中輸入法設(shè)置的相關(guān)技巧,需要的朋友可以參考下

本文實例講述了C#中Winfrom默認輸入法的設(shè)置方法。分享給大家供大家參考。具體分析如下:

在WINFORM中我們經(jīng)常遇到文本輸入框中輸入法被禁用或老是變?nèi)禽斎敕ǖ葐栴},經(jīng)查閱相關(guān)資料,現(xiàn)小結(jié)如下:

一、Control.ImeMode 屬性:獲取或設(shè)置控件的輸入法編輯器 (IME) 模式。

(1)由于窗體屬性繼承關(guān)系,如果你的WINFORM窗體中大部分需要設(shè)置為輸入法有效狀態(tài),可以設(shè)置為FORM的ImeMode屬性為On.
(2)如果需要某些TextBox為輸入法有效,則使用ImeMode.On
(3)如果需要設(shè)置整個窗體的輸入法全部為半角,可以使用以下代碼:

#region 修正輸入法全角/半角的問題
//聲明一些API函數(shù) 
[DllImport("imm32.dll")]
public static extern IntPtr ImmGetContext(IntPtr hwnd);
[DllImport("imm32.dll")]
public static extern bool ImmGetOpenStatus(IntPtr himc);
[DllImport("imm32.dll")]
public static extern bool ImmSetOpenStatus(IntPtr himc, bool b);
[DllImport("imm32.dll")]
public static extern bool ImmGetConversionStatus(IntPtr himc, ref int lpdw, ref  int lpdw2);
[DllImport("imm32.dll")]
public static extern int ImmSimulateHotKey(IntPtr hwnd, int lngHotkey);
private const int IME_CMODE_FULLSHAPE = 0x8;
private const int IME_CHOTKEY_SHAPE_TOGGLE = 0x11;
protected override void OnActivated(EventArgs e)
{
  base.OnActivated(e);
  IntPtr HIme = ImmGetContext(this.Handle);  
  //如果輸入法處于打開狀態(tài) 
  if (ImmGetOpenStatus(HIme))
  {
    int iMode = 0;
    int iSentence = 0;
    //檢索輸入法信息 
    bool bSuccess = ImmGetConversionStatus(HIme, ref iMode, ref iSentence);  
    if (bSuccess)
    {
      //如果是全角,轉(zhuǎn)換成半角 
      if ((iMode & IME_CMODE_FULLSHAPE) > 0)    
        ImmSimulateHotKey(this.Handle, IME_CHOTKEY_SHAPE_TOGGLE);    
    }
  }
}
#endregion 修正輸入法全角/半角的問題

注意:需要引用以下命名空間:using System.Runtime.InteropServices; 

(4)對于僅用于輸入數(shù)值的 TextBox 控件,ImeMode 屬性通常設(shè)置為 ImeMode.Off。對于 Form 類,ImeMode 屬性值設(shè)置為 ImeMode.NoControl。

(5)不直接支持輸入方法編輯器或允許從 IME 直接輸入的大多數(shù)類將此屬性的值設(shè)置為 NoControl。

重要事項:

除非 ImeMode 已經(jīng)以編程方式設(shè)置為 ImeMode.Disable,否則用戶能夠以交互方式更改它。在前一種情況下,用戶將無法使用 IME。

二、ImeMode各屬性的含義:

ImeMode 枚舉:指定一個值,該值是用來確定在選定了對象時該對象的輸入法編輯器 (IME) 的狀態(tài)。

以下是微軟的解釋:

  成員名稱 說明
  Alpha 字母數(shù)字單字節(jié)字符 (SBC)。此設(shè)置僅對朝鮮語和日語 IME 有效。 
  AlphaFull 字母數(shù)字雙字節(jié)字符。此設(shè)置僅對朝鮮語和日語 IME 有效。 
  Close  
  Disable IME 被禁用。如果使用此設(shè)置,則用戶無法從鍵盤打開 IME,而且 IME 浮動窗口處于隱藏狀態(tài)。 
  Hangul 朝鮮文 SBC。此設(shè)置僅對朝鮮語 IME 有效。 
  HangulFull 朝鮮文 DBC。此設(shè)置僅對朝鮮語 IME 有效。 
  Hiragana 平假名 DBC。此設(shè)置僅對日語 IME 有效。 
  Inherit 繼承父控件的 IME 模式。 
  Katakana 片假名 DBC。此設(shè)置僅對日語 IME 有效。 
  KatakanaHalf 片假名 SBC。此設(shè)置僅對日語 IME 有效。 
  NoControl 無(默認)。 
  Off IME 已關(guān)閉。此模式指示 IME 已關(guān)閉,這意味著該對象的行為方式與英語輸入模式相同。此設(shè)置僅對日語、簡體中文和繁體中文 IME 有效。 
  On IME 已打開。此值指示 IME 已打開,可以輸入中文或日語特定的字符。此設(shè)置僅對日語、簡體中文和繁體中文 IME 有效。 

 
備注:

輸入法編輯器 (IME) 允許用戶輸入和編輯中文、日語和朝鮮語字符。IME 是用于編寫中文、日語和朝鮮語腳本的基本組件。這些書寫體系具有的字符比可為常規(guī)鍵盤編碼的字符要多。這些語言的 IME 使用描述單個字符或成組字符的基字符序列,以便允許您輸入范圍較廣的一組字符?;址梢允莵碜猿r文音節(jié)的成分字母、日語漢字字符的拼音成分,或者中文字符的各種組合。

三、如果設(shè)置為合適的輸入法?

這里僅給一個例子,打擊可以舉一返三:

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
public class Form1 : System.Windows.Forms.Form
{
  RichTextBox rtb = new RichTextBox();
  public Form1()
  {
    this.Controls.Add(rtb);
    rtb.Dock = DockStyle.Fill;
    this.InputLanguageChanged += new InputLanguageChangedEventHandler(languageChange);
  }
  private void languageChange(Object sender, InputLanguageChangedEventArgs e)
  {
    // If the input language is Japanese, set the initial IMEMode to Katakana.
    if (e.InputLanguage.Culture.TwoLetterISOLanguageName.Equals("ja"))
    {
      rtb.ImeMode = System.Windows.Forms.ImeMode.Katakana;
    }
  }
  public static void Main(string[] args)
  {
    Application.Run(new Form1());
  }
}

希望本文所述對大家的C#程序設(shè)計有所幫助。

相關(guān)文章

  • C#自定義集合初始化器

    C#自定義集合初始化器

    這篇文章介紹了C#自定義集合初始化器的方法,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07
  • 如何:對Windows 窗體控件進行線程安全調(diào)用

    如何:對Windows 窗體控件進行線程安全調(diào)用

    使用多線程提高 Windows 窗體應(yīng)用程序的性能時,必須注意以線程安全方式調(diào)用控件。
    2007-03-03
  • c# 開發(fā)文字識別軟件

    c# 開發(fā)文字識別軟件

    這篇文章主要介紹了c# 開發(fā)文字識別軟件的方法,幫助大家更好的利用c#進行文字識別,感興趣的朋友可以了解下
    2020-12-12
  • 解讀赫夫曼樹編碼的問題

    解讀赫夫曼樹編碼的問題

    本篇文章對赫夫曼樹編碼的問題進行了分析說明,需要的朋友參考下
    2013-05-05
  • C#中圖片旋轉(zhuǎn)和翻轉(zhuǎn)(RotateFlipType)用法分析

    C#中圖片旋轉(zhuǎn)和翻轉(zhuǎn)(RotateFlipType)用法分析

    這篇文章主要介紹了C#中圖片旋轉(zhuǎn)和翻轉(zhuǎn)(RotateFlipType)用法,實例分析了C#圖片旋轉(zhuǎn)及翻轉(zhuǎn)Image.RotateFlip方法屬性的常用設(shè)置技巧,需要的朋友可以參考下
    2015-06-06
  • C#通過流寫入一行數(shù)據(jù)到文件的方法

    C#通過流寫入一行數(shù)據(jù)到文件的方法

    這篇文章主要介紹了C#通過流寫入一行數(shù)據(jù)到文件的方法,涉及C#針對文本文件讀寫的基本技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • UnityUI中繪制線狀統(tǒng)計圖

    UnityUI中繪制線狀統(tǒng)計圖

    這篇文章介紹了UnityUI中繪制線狀統(tǒng)計圖的方法,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • C#調(diào)用Nero SDK刻錄光盤的方法

    C#調(diào)用Nero SDK刻錄光盤的方法

    這篇文章主要介紹了C#調(diào)用Nero SDK刻錄光盤的方法,涉及C#調(diào)用NeroCOM組件實現(xiàn)光盤刻錄的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • C#圖片查看器實現(xiàn)方法

    C#圖片查看器實現(xiàn)方法

    本篇文章給大家分享了用C#制作圖片查看器的方法以及先實現(xiàn)代碼,有需要的讀者們參考下。
    2018-03-03
  • C#編寫一個簡單記事本功能

    C#編寫一個簡單記事本功能

    這篇文章主要為大家詳細介紹了C#編寫一個簡單記事本功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10

最新評論

杭锦后旗| 新宁县| 卢氏县| 双江| 太保市| 娄烦县| 邓州市| 湟源县| 磐石市| 白银市| 中江县| 任丘市| 周宁县| 龙江县| 太湖县| 洞头县| 东丽区| 常宁市| 隆回县| 曲周县| 开阳县| 旌德县| 长宁县| 璧山县| 日土县| 霍林郭勒市| 丰原市| 出国| 阳谷县| 额济纳旗| 永吉县| 体育| 勐海县| 温宿县| 宾阳县| 洪洞县| 浦城县| 南部县| 临城县| 耒阳市| 神农架林区|