winform 开发遇到问题,忘各位给点思路

问题描述

先看下面第一张图,理解下需求这是个设计面板,大家可以理解成类似PhotoShop这样的设计面板,虚线框里面其实是一个文本输入框,可以在里面输入文字的,现在的问题是,当如鼠标点中这个文本输入框的时候,输入光标就进入了文本框等待我输入文字,然而我不希望这样的效果,我希望点中(单击)文本输入框,输入光标不要进入输入框而是等待我移动这个文本框到另一个位置但当我双击这个文本框的时候,输入光标就进入文本框等待我输入如下图网上有些人说转移焦点到一个无关的label上,但是在鼠标单击textBox事件里转移焦点之前,输入光标还是会在文本框里出现一下,感觉效果不太好大家有没有其他好的思路,最完美的方案我希望就是文本框本身就是双击获得输入焦点,单击表示点中了这个对象

解决方案

解决方案二:
我觉得你还是直接全靠gdi画上去比较妥当,包括文字
解决方案三:
你这个逻辑本身就是矛盾的如果你虚线框里面是文本区域那么鼠标点进去自然应该是光标状态而不是移动的十字箭头鼠标移动和输入光标只能二选一而且既然你都提到了photoshop那你为什么不直接参考一个ps的逻辑呢ps的文字工具也是一样整个虚线框都是文本域鼠标放入区域都是光标输入但是如果按住ALT的同时把鼠标放入就可以移动区域就像我刚才上面说的光标和移动你只能二选一但是你却可以变成(鼠标进入)和(按键+鼠标进入)两个状态来处理
解决方案四:
引用2楼crystal_lz的回复:

你这个逻辑本身就是矛盾的如果你虚线框里面是文本区域那么鼠标点进去自然应该是光标状态而不是移动的十字箭头鼠标移动和输入光标只能二选一而且既然你都提到了photoshop那你为什么不直接参考一个ps的逻辑呢ps的文字工具也是一样整个虚线框都是文本域鼠标放入区域都是光标输入但是如果按住ALT的同时把鼠标放入就可以移动区域就像我刚才上面说的光标和移动你只能二选一但是你却可以变成(鼠标进入)和(按键+鼠标进入)两个状态来处理

引用2楼crystal_lz的回复:

你这个逻辑本身就是矛盾的如果你虚线框里面是文本区域那么鼠标点进去自然应该是光标状态而不是移动的十字箭头鼠标移动和输入光标只能二选一而且既然你都提到了photoshop那你为什么不直接参考一个ps的逻辑呢ps的文字工具也是一样整个虚线框都是文本域鼠标放入区域都是光标输入但是如果按住ALT的同时把鼠标放入就可以移动区域就像我刚才上面说的光标和移动你只能二选一但是你却可以变成(鼠标进入)和(按键+鼠标进入)两个状态来处理

@crystal_lz谢谢你的回复。这样需求我是参考了一个现成的软件里是这样做的如下图第一帧和第二帧图像是代表鼠标点在这一块文本框上移动(由于我用了电脑截屏方式,所以鼠标样式没能截屏到图像里面),第三帧图像是双击进入了文本框开始编辑关于你提到的ps里的是这样操作的,拖一个文本框到面板上鼠标进入到文本框区域时是编辑状态,如果需要移动这个文本框,那么首选鼠标移出文本框区域同时按中Alt键可以实现移动,但是现在是这样的,我的设计面板里比如可能有两个或更多的文本框,我可能任何时候需要移动其中的文本框并实现编辑文本框,现在我是将这些所有的文本框当做对象放在List里面,当我要移动一个文本框时,首先要先拿到这个文本框对象,我的做法是,取出当前鼠标点击的坐标,然后到List里遍历所有的文本框,如果点击的坐标在文本框区域内则返回这个对象,所以问题来了,当我在文本框上点一下鼠标的时候,鼠标会进入文本框内,然而我的目的是第一:通过坐标点我能拿到这个对象第2:给软件使用者,表示我选中了这个文本框了可以移动他了但是鼠标却以光标闪动的形式在文本框里闪烁,给用户的意图不太明确
解决方案五:
好吧我说错了ps不是按住alt是ctrl不过我就不明白为什么你会存在多个文本框有什么意义?。。用一个文本框不就行了?拉出一个区域默认出来一个文本框填充满刚才的区域当鼠标离开焦点的时候文本框隐藏并且将文本框内的文字绘制到矩形框内然后进入区域显示移动如果是双击区域文本框再次显示出来并且获得焦点
解决方案六:
??这个本身就不应该直接继承textbox,如果你要机场textbox就需要自己拦截一下消息这个东西的正常做法是继承Control或usercontorl

时间: 2025-01-21 12:08:10

winform 开发遇到问题,忘各位给点思路的相关文章

java winform开发:JTable详解

列表在任何一门开发语言中都占有非常重要的地位,在.Net中有GridView,在extjs中有GridPanel...,而在java Swing中,它的名字叫JTable.这两天在研究JTable的使用,也有一些收获,所以在这里跟大家分享交流一下,下面的内容将包括:1)JTable的基本用法:2)怎样为JTable添加行点击响应事件,双击后打开窗口:3)怎样为JTable的行添加标识,如行id等:4)怎样在JTable中动态添加新行: 1)JTable的基本用法: 我用的IDE是NetBeans

Winform开发客户关系管理系统(CRM)总结 1 界面功能展示

一直以来,都希望整合一个以客户为中心的平台,有两个方面的考虑:一是实现客户数据.客户关系 .客户管理等方面的整合,以便更好利用好客户的相关资源,发挥最大的营销效益:二是整合目前我的 开发框架的所有模块和技术,包括权限管理和控制.字典管理模块.分页控件.公用类库.自动更新模 块.附件管理模块.邮件短信的信息通知模块.工作流模块,以及来电显示记录模块.群发邮件营销模 块.日历管理模块等方面的内容.本随笔系列主要介绍在开发我的CRM系统中的各种场景问题的解决思路 ,以及相关的功能实现,力求在逐步完善这

wm touch-vs2013用C#的winform开发怎么才能获取WM_TOUCH消息的钩子信息.

问题描述 vs2013用C#的winform开发怎么才能获取WM_TOUCH消息的钩子信息. vs2013用C#的winform开发怎么才能获取WM_TOUCH消息的钩子信息. 解决方案 顶一下,!!!!!!!!!

请问谁有winform开发的应用程序实例或教程也行

问题描述 请问谁有winform开发的应用程序实例或教程也行,最好是源码,VS2005+C#,谢谢啦 解决方案 解决方案二:http://download.csdn.net/source/267815csdn下载频道多的是啦解决方案三:这方面的中文书籍不多,你可以去看看外文的书:Manning.Publications.Windows.Forms.in.Action.2nd.Edition.Apr.2006.pdf电驴上有,这本我看过,还是不错的

用Winform开发了一个程序,界面上的控件在Win7下是基本对齐的,到了WindowsServer2008下就变的完全对不齐了?请问这是什么原因?

问题描述 用Winform开发了一个程序,界面上的控件在Win7下是基本对齐的,到了WindowsServer2008下就变的完全对不齐了?请问这是什么原因?RT 解决方案 解决方案二:不知道你是用什么方法"对齐"的,所以无法判断.比如说你用"空格"来搞什么"对齐",那么不同系统的同一个主题下的细节设置也是有调整的,空格在高版本的windows下肯定就变宽了一些,那么自然在高版本windows下就"鼓出去"了.你用于"

c# winform开发 想实现2个功能

问题描述 c# winform开发 想实现2个功能 做了一个窗体 在里面有文本框 想做一个输入法,来向文本框中输入文字,怎么能调用微软自带的输入法来解决这个问题,还有怎么能实现手写功能

C# WinForm开发系列 - WebBrowser

原文:C# WinForm开发系列 - WebBrowser    介绍Vs 2005中带的WebBrowser控件使用以及一些疑难问题的解决方法, 如如何正确显示中文, 屏蔽右键菜单, 设置代理等; 收集的文章中有可能还带了一些Asp.Net开发使用微软的WebBrowser进行页面打印方面文章. 01. vs2005中的WebBrowser控件的简单应用 02. WebBrowser控件的简单应用2 03. WebBrowser控件应用:弹出新窗体和关闭窗口 04. WebBrowser控件

winform开发中autovue 默认选中平移按钮怎样弄?求助

问题描述 winform开发中autovue默认选中平移按钮怎样弄?求助 解决方案 解决方案二:autovue用的版本是:autovue20.0.0.7330.

找一个DevExpress 9.3安装包,做winform开发,急用!

问题描述 找一个DevExpress9.3安装包,做winform开发,急用! 解决方案 解决方案二:14版本的9.3的太早了http://pan.baidu.com/s/1pKk07Yr解决方案三:引用楼主yinhangzhe的回复: 找一个DevExpress9.3安装包,做winform开发,急用! 是一个老项目做维护,不得已才找这个版本的解决方案四:这是收费的阿

.Net Winform开发笔记(四)透过现象看本质_C#教程

写在前面: 从一个窗体的创建显示,再到与用户的交互,最后窗体关闭,这中间经历过了一系列复杂的过程,本文将从Winform应用程序中的Program.cs文件的第一行代码开始,逐步分析一个Winform应用程序到底是怎样从出生走向死亡,这其中包括Form.Show()和Form.ShowDialog()的区别.模式对话框形成的本质原因.消息循环.Windows事件与.net中事件(Event)的区别.System.Windows.Form.Application类的作用.以及我之前一篇博客中(.N