winform 中的几个技巧

1.输入控件如 ComboBox输入内容后自动填充

属性AutoCompleteMode = AutoCompleteMode.SuggestAppend;
属性AutoCompleteSource = AutoCompleteSource.ListItems; 

 

2.光标定位到文本框内容的最右边

this.txtID.Focus();
this.txtID.Select(this.txtID.TextLength, 0);
this.txtID.ScrollToCaret();

 

3.使用Enter键代替Tab键

首先在Form_Load()方法中添加如下代码:

 foreach (Control ctrl in this.groupBox1.Controls)
 {
     if ((ctrl is TextBox) || (ctrl is ComboBox) || (ctrl is ComboBox)) //如果文本框或下拉框放在组合框中,你应该用如groupBox1.TextBox 
     {
          ctrl.KeyDown += new System.Windows.Forms.KeyEventHandle(this.EnterKeyDown);
      }
 }

 

再添加事件函数:

private void EnterKeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
     if (e.KeyCode == Keys.Enter)
    {
         System.Windows.Forms.SendKeys.Send("{TAB}");
    }

}

 

 

4.修改输入法中全角/半角问题:

      至VS2005测试版以来就一直存在这个问题,在WinForm应用程序中和Visual Studio 2005开发环境中,一切换窗口,中文输入法就会变成全角。微软终于发布补丁程序了。

关于全角输入法Bug的官方文档 KB925488:

http://support.microsoft.com/default.aspx/kb/925488/

但是官方没有提供下载地址。

需要补丁的朋友可以从这儿下载:http://www.joyblog.cn/attachments/month_0702/ndp20-kb925488-x86.rar

  #region 修正输入法全角/半角的问题
        //声明一些API函数  
        [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);
            //如果输入法处于打开状态 
            if (ImmGetOpenStatus(HIme))
            {
                int iMode = 0;
                int iSentence = 0;
                //检索输入法信息  
                bool bSuccess = ImmGetConversionStatus(HIme, ref   iMode, ref   iSentence);
                if (bSuccess)
                {
                    //如果是全角,转换成半角 
                    if ((iMode & IME_CMODE_FULLSHAPE) > 0)
                        ImmSimulateHotKey(this.Handle, IME_CHOTKEY_SHAPE_TOGGLE);
                }

            }
        }
        #endregion 修正输入法全角/半角的问题

并加上命名空间: using System.Runtime.InteropServices;

 

5.winform窗体间传值的问题(待续)

 

 

 

 

SendKeys.Send(Keys.Enter.ToString());//模拟按下回车键 
SendKeys.Send("{BackSpace}");// 模拟按下退格键 
以下是 SendKeys 的一些特殊键代码表。 
键 代码 
BACKSPACE {BACKSPACE}、{BS} 或 {BKSP} 
BREAK {BREAK} 
CAPS LOCK {CAPSLOCK} 
DEL 或 DELETE {DELETE} 或 {DEL} 
DOWN ARROW(下箭头键) {DOWN} 
END {END} 
ENTER {ENTER} 或 ~ 
ESC {ESC} 
HELP {HELP} 
HOME {HOME} 
INS 或 INSERT {INSERT} 或 {INS} 
LEFT ARROW(左箭头键) {LEFT} 
NUM LOCK {NUMLOCK} 
PAGE DOWN {PGDN} 
PAGE UP {PGUP} 
PRINT SCREEN {PRTSC}(保留,以备将来使用) 
RIGHT ARROW(右箭头键) {RIGHT} 
SCROLL LOCK {SCROLLLOCK} 
TAB {TAB} 
UP ARROW(上箭头键) {UP} 
F1 {F1} 
F2 {F2} 
F3 {F3} 
F4 {F4} 
F5 {F5} 
F6 {F6} 
F7 {F7} 
F8 {F8} 
F9 {F9} 
F10 {F10} 
F11 {F11} 
F12 {F12} 
F13 {F13} 
F14 {F14} 
F15 {F15} 
F16 {F16} 
数字键盘加号 {ADD} 
数字键盘减号 {SUBTRACT} 
数字键盘乘号 {MULTIPLY} 
数字键盘除号 {DIVIDE} 

若要指定与 SHIFT、CTRL 和 ALT 键的任意组合一起使用的键,请在这些键代码之前加上以下一个或多个代码: 

键 代码 
SHIFT + 
CTRL ^ 
ALT % 
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值