zoukankan      html  css  js  c++  java
  • winform模拟qq聊天界面的小功能textbox1输入自动跳到textbox2

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Runtime.InteropServices;

    namespace WindowsFormsApplication28
    {
    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();
    }

    protected override void WndProc(ref Message m)
    {
    const int WM_CHAR = 0x0102;
    const int WM_USER = 0x0400;
    const int WM_USER1 = WM_USER + 1;
    switch (m.Msg)
    {
    case WM_USER1:
    textBox1.Focus();
    IntPtr hwnd = textBox1.Handle;
    WinAPI.SendMessage(hwnd, WM_CHAR, (int)m.WParam, 0);
    break;
    }
    base.WndProc(ref m);
    }
    }

    class MyTextBox : TextBox
    {
    protected override void WndProc(ref Message m)
    {
    const int WM_CHAR = 0x0102;
    const int WM_PAINT = 0x000F;
    const int WM_USER = 0x0400;
    const int WM_KEYDOWN= 0x0100;
    const int WM_IME_CHAR = 0x0286;
    const int WM_IME_COMPOSITION = 0x010F;
    switch (m.Msg)
    {
    case WM_CHAR:
    {
    int key = (int)m.WParam;
    IntPtr hwnd = WinAPI.FindWindow("WindowsForms10.Window.8.app.0.2bf8098_r13_ad1", null);
    WinAPI.SendMessage(hwnd, WM_USER + 1, (int)m.WParam, 0);
    }
    return;
    //case WM_IME_CHAR:
    // MessageBox.Show("a");
    // break;
    //case WM_KEYDOWN:
    // {
    // IntPtr hwnd = WinAPI.FindWindow("WindowsForms10.Window.8.app.0.2bf8098_r13_ad1", null);
    // int code = (int)m.WParam;
    // WinAPI.SendMessage(hwnd, WM_USER + 1, code, 0);
    // }
    // return;
    case WM_IME_COMPOSITION:
    {
    IntPtr hwnd = WinAPI.FindWindow("WindowsForms10.Window.8.app.0.2bf8098_r13_ad1", null);
    int code = (int)m.WParam;
    WinAPI.SendMessage(hwnd, WM_USER + 1, code, 0);
    }
    return;
    //case WM_PAINT:
    ////MessageBox.Show("aa");
    // break;
    }
    base.WndProc(ref m);
    }
    }
    }



    记录下,备忘~

    就是要把上面那个textbox的WndProc重写下,然后消息拦截下就ok了。。

  • 相关阅读:
    本机mysql 5.7服务启动后停止,某些服务在未有其他应用程序使用时停止
    java数据结构 • 面向对象 • 异常 • 随机数·时间
    获取对象信息
    集合的运算律
    常用的逻辑符号
    未解决问题
    继承和多态
    访问权限
    类和实例
    第三方模块安装
  • 原文地址:https://www.cnblogs.com/knightluffy/p/2301848.html
Copyright © 2011-2022 走看看