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了。。

  • 相关阅读:
    [转]MYSQL5.7版本sql_mode=only_full_group_by问题
    [坑]Linux MySQL环境表名默认区分大小写
    [转]CentOS 7.3 安装MySQL
    [转]Oracle截取字符串相关函数
    服务相关
    CSRF攻击
    sqlalchemy——多表操作
    sqlalchemy——基本操作
    高可用——网站运行监控
    高可用——软件质量保证
  • 原文地址:https://www.cnblogs.com/knightluffy/p/2301848.html
Copyright © 2011-2022 走看看