none
请教TextBox.Enabled=false时不接收键鼠事件,怎么处理? RRS feed

答案

  • 你好!
       你想实现在窗体任意位置通过鼠标来拖动窗体,可以不使用API,直接使用MouseDown,MouseMove,MouseUp事件来实现。

    周雪峰
    2009年2月5日 7:05
    版主

全部回复

  • 可以用一个  

    以 (textbox.DrawToBitmap   得到的被disable的图片 )作为内容的picturebox 覆盖被disable的textbox

     


    Guitar Hero IV -- Singing Rock & Roll.
    2009年2月5日 6:05
  • 这似乎有点矛盾啊。呵。

    我的思路是:用绝对坐标 x y来判断。

    首先判断 这个 btn 在 form中的xy,然后判断 鼠标的 xy,并监听鼠标的 click事件,当btn.xy = 鼠标.xy 并且 鼠标 click时,触发事件。

    只是思路,要代码的话,我比你还差。
    大家强烈要求我加入签名
    2009年2月5日 6:06
  • 韦恩卑鄙 说:

    可以用一个  

    以textbox.DrawToBitmap   得到的被disable的图片  作为内容的picturebox 覆盖被disable的textbox

     


    Guitar Hero IV -- Singing Rock & Roll.



    谢谢,但恐怕不行,textbox的大小是会随时改变的。。。原来的问题在这里,这个问题是从这里出来的
    http://social.microsoft.com/Forums/zh-CN/visualcshartzhchs/thread/c2b00445-9e68-44a3-ab2f-e9001444a9e8
    随缘
    2009年2月5日 6:07
  • 那就不要使用Enabled了。你要实现不能文字修改,你可以  textBox1.ReadOnly = true;
    孟宪会
    2009年2月5日 6:08
    版主
  • 孟宪会 说:

    那就不要使用Enabled了。你要实现不能文字修改,你可以  textBox1.ReadOnly = true;


    孟宪会



    Readonly不行,ReadOnly和Enabled效果不一样
    其实我是用textbox整个覆盖了他所在的form,要实现form任意位置都可以鼠标拖拽(这个用windows api实现的),但是当txtbox.readonly=true时,拖拽就失效了,而textbox.enabled=false时拖拽没问题,但是textbox的双击事件又失效了。。。。。。
    随缘
    2009年2月5日 6:13
  • 你好!
       你想实现在窗体任意位置通过鼠标来拖动窗体,可以不使用API,直接使用MouseDown,MouseMove,MouseUp事件来实现。

    周雪峰
    2009年2月5日 7:05
    版主
  • textbox 大小 随时改变也没什么问题  只要disable了又怎么会变呢?

    如果是filled 在form  几乎就可以直接把图片写到  form上  然后把textbox 隐藏就好了


    Guitar Hero IV -- Singing Rock & Roll.
    2009年2月5日 7:30
  •  那你就在事件里处理该做什么吧
    或者干脆不要TextBox,既然TextBox被Disbaled掉了,那用label得了
    孟宪会
    2009年2月5日 8:26
    版主
  • 其实吧 lz兄弟 我就算给你写一个都不需要这么久。。。。


    Guitar Hero IV -- Singing Rock & Roll.
    2009年2月5日 9:18
  • LZ我给你一个建议

    把代码帖出来(也许你认为是公司的不能帖出来 但实际上谁知道是哪个公司的呢?)

    你甚至可以完全把他当成一个自己开发的程序

    或者你另外单独写一个 按照自己的规范

    源程序发布到网上

    然后让论坛能帮助你的人实现(每次他们只实现自己的程序)

    你甚至可以保留不同作者的程序 以方便他们以后更改(因为可能规范不同)

    2009年2月5日 13:32
  •  应该把详细的需求说出来,也许你的思路有点问题,大家帮你分析一下。
    老桂
    2009年2月6日 0:45
    版主
  •         Point MyOffest;


            private  void textBox1_MouseDown(object sender, MouseEventArgs e)
            {
                MyOffest = new Point(e.X+8, e.Y+28);    //8和28分别是textbox相对form的左、上边的距离
            }

            private void textBox1_MouseMove(object sender, MouseEventArgs e)
            {
                if (e.Button == MouseButtons.Left)
                {
                    Point MyPos = Control.MousePosition;
                    MyPos.Offset(-MyOffest.X, -MyOffest.Y);
                    this.DesktopLocation = MyPos;
                }
            }

    2009年8月17日 16:55
  • 直接用ReadOnly吧。
    http://hi.baidu.com/2009ajun
    2009年8月17日 22:35
  • TextBox放div里面,让div接受事件处理
    2009年8月21日 4:07