当前位置:编程学习 > wap >>

VS2005中C#平台开发智能设备上的自定义数字键盘并实现输入,插入,删除功能

大家好,我花了几天时间都解决不了这个问题,特向你们请教.  我想VS2005的C#开发智能设备上自己定义几个数字键盘(0~9,负号"-",小数点".",左移键(在光标显示的文本框内)右移键,删除键(一个一个的删除),清空键(整个文本框内全部清空),数字键用button控件,显示的用textBox,可以实现将光标在文本框内自由移动,插入数字,而且可以在这个程序里面的任何窗口随时调用,还有当光标在输入的文本框中时就显示自定义的这个键盘,当不在需要输入数字的文本框的时候可以隐藏.
   --------------------编程问答-------------------- 问题请再简单的描述一下。

--------------------编程问答-------------------- 就是我利用屏幕下方的自定义数字键盘向上面的4个文本框输入数据啊,而且将光标移动还可以任意插入数字 --------------------编程问答-------------------- --------------------编程问答-------------------- http://p.blog.csdn.net/images/p_blog_csdn_net/zhaojianjiang/445845/o_11.JPG --------------------编程问答-------------------- 怎么实现的啊?有代码吗?这个程序没有插入功能啊 --------------------编程问答-------------------- 抱歉,你说的意思,我还是不明白, 要不你把图再上一下?

我做的就是一个数字录入控件,在要录入数字时,选择打开, 就这么简单 --------------------编程问答-------------------- 抱歉,你说的意思,我还是不明白, 要不你把图再上一下?

我做的就是一个数字录入控件,在要录入数字时,选择打开, 就这么简单 --------------------编程问答-------------------- 粗糙一点:
定义一个用户控件,利用PostMessage向主窗体的文本框发送消息
         [return: MarshalAs(UnmanagedType.Bool)]
        [DllImport("coredll.dll", SetLastError = true)]
        static extern bool PostMessage(IntPtr hWnd, WindowsMessages Msg, IntPtr wParam, IntPtr lParam);

        #region Windows消息枚举
        private enum WindowsMessages
        {
            WM_CHAR = 0x102
        }
        #endregion

        private void btnHide_Click(object sender, EventArgs e)
        {
            this.Visible = false;
        }

        private void btnClick(object sender, EventArgs e)
        {
            if (ControlText == null)
                return;
            else if (ControlText != null && ControlText is TextBox )
            {
                Button ctl = (Button)sender;
                IntPtr ctlIntPtr = ControlText.Handle;
                ControlText.Focus();
                PostMessage(ctlIntPtr, WindowsMessages.WM_CHAR, new IntPtr((int)ctl.Text[0]), IntPtr.Zero);
            }
        }

        private void btnCancleClick(object sender, EventArgs e)
        {
            if (ControlText == null)
                return;
            else if (ControlText != null && ControlText is TextBox )
            {
                IntPtr parentCtlIntPtr = ControlText.Handle;
                ControlText.Focus();
                PostMessage(parentCtlIntPtr, WindowsMessages.WM_CHAR, (IntPtr)8, IntPtr.Zero);
            }
        } --------------------编程问答-------------------- up
补充:移动开发 ,  Windows Phone
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,