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

  • 相关阅读:
    Java上等价类划分测试的实现
    软件测试の因果图法的测试运用
    display: block; 和 display: inline; 的区别
    CSS实现垂直居中
    CSS中实现水平居中
    HTTP头部信息
    HTTP PUT方法和POST方法的区别
    理解 ajax xhr jsonp
    深入理解JavaScript系列
    Angular 1.x 指令笔记
  • 原文地址:https://www.cnblogs.com/knightluffy/p/2301848.html
Copyright © 2011-2022 走看看