首页
学习
活动
专区
工具
TVP
发布

【C#】组件分享:FormDragger窗体拖拽

拖拽的地方包括不限于: 窗体、Panel、GroupBox、TabControl等容器控件的空白区; 菜单栏、工具栏、状态栏等bar的空白区,以及无效项目; Label、PictureBox、ProgressBar...可向其中添加或移除控件实例,处于列表中的控件不接受拖拽 List ExcludeControls { get; } //事件:准备拖拽时发生,可用e.Cancel = true取消拖拽...EnabledChanged; 使用挺简单,随时随地FormDragger.Enabled = true/false就能开闭拖拽功能,比如在Main函数中就可以开好,完了程序内的所有自建窗体就可以愉快的拖拽了...,但是,像消息框MessageBox、各种对话框(如打开文件对话框)等由系统提供的窗体不能拖,原因是这些窗口的消息不进入程序,需要勾子才能捕获到,犯不着(其实方案里已经实现了一个DialogDragger.cs...原理: 利用Application.AddMessageFilter向程序加入消息过滤器,拦截并处理发往程序窗体的鼠标左键单击消息,若满足逻辑,则拦下该消息,并往控件所在的窗体发送点击标题栏的消息,达到点击该控件时系统认为是点到窗体标题栏的效果

1.4K20

WPF窗体中控件移动 + 拖拽大小 + 动画拖动

使用方法[这是在一个窗体的后台代码]: //实例化对象 public DragControlsHelper dragControlsHelper = new DragControlsHelper...(); //执行以下方法就可以拖拽了[this属于窗体的对象,小范围拖拽可以自建布局容器] dragControlsHelper.Insert(控件的对象或者控件的Name...窗体太小时,其末尾的控件会自动换行,像Java中的流布局; [Canvas]坐标布局,基于坐标的布局,利用Canvas.Left,Canvas.Top,Canvas.Right,Canvas.Bottom...summary> /// 要拖动的控件 /// 窗体的布局容器...:意思就是这个控件是被谁包这的就传它,我一般传窗体对象,窗体包着所有的控件,小范围拖动,自行建布局容器包着要拖动的控件 public void Insert(UIElement

1.6K40
您找到你想要的搜索结果了吗?
是的
没有找到

【NEW】WPF窗体中控件移动 + 拖拽大小 + 动画拖动

在之前写了WPF窗体中控件移动 + 拖拽大小 + 动画拖动,但是只能在Canvas容器布局中使用 现在,新增可以在GRID中可以动画拖动了 【GRID中实现动画效果】 下载 (1).gif 【Canvas...】 使用方法[这是在一个窗体的后台代码]: //实例化对象 public DragControlsHelper dragControlsHelper = new...DragControlsHelper(); //执行以下方法就可以拖拽了[this属于窗体的对象,小范围拖拽可以自建布局容器] dragControlsHelper.Insert...窗体太小时,其末尾的控件会自动换行,像Java中的流布局; [Canvas]坐标布局,基于坐标的布局,利用Canvas.Left,Canvas.Top,Canvas.Right,Canvas.Bottom...:意思就是这个控件是被谁包这的就传它,我一般传窗体对象,窗体包着所有的控件,小范围拖动,自行建布局容器包着要拖动的控件 public void Insert(UIElement

1.5K30

java中如何创建窗体「建议收藏」

今天说一说java中如何创建窗体,希望能够帮助大家进步!!!...首先,我们看一下窗体都有哪些要素,以windows下的【记事本】为例:我们新建一个记事本,会看到标题,大小,位置,关闭方式 所以我们用代码创建一个窗体,也需要这些要素,前提:在Java中创建窗体,我们需要继承...【JFrame】类,导入JFrame包 在线学习视频教程推荐:java学习视频 第二步,我们给窗体设置标题(PS:对窗体的一些设置,最好写在构造方法里,养成良好的习惯),设置标题使用setTitle(...)方法 第三步,给窗体设置大小和位置,我们可以使用setBounds()【setBounds()传入4个参数,前两个是窗体的位置,后两个是窗体的 大小】,大小和位置一起设置,也可以使用setLocation...()设置窗体的位置,使用setSize()设置窗体的大小 注意:窗体的位置,是以电脑屏幕左上角为原点(0,0)的坐标系 第四步,设置窗体的关闭方式,使用setDefaultCloseOperation

1.3K20

java swing开发窗体程序开发(一)GUI编程

Java SWing就是java提供的一个类库专门用于开发窗体程序的,相对于C#的winform,java swing的开发要比C#更加麻烦,他不像C#拥有可视化的界面编辑工具 而是需要像QT一样纯代码式...java的好处就是通用性强,跨平台,这个java窗体程序做好之后,哪都可以用。然而C#的winform只能运行在有.net框架上 的平台,然而.net支持最好的,也就只有windows了。...C#的开发效率更高 以下讲解Java swing的开发 (一)第一个java swing程序 public static void main(String[] args) {...运行的效果如下 (二)带有菜单栏,菜单条,和子菜单的窗体程序 首先要知道几个常见类和函数 JMenuBar:代表菜单条,他需要被设置给JFrame窗体中 JMenu:代表菜单,他需要被放在菜单条中...下面介绍最重要的”事件” 可以关注我的博客,观看后续学习记录 下一节:java swing 窗体程序开发(二)事件(Action,Item,Document) https://blog.csdn.net

2.3K30

《IntelliJ IDEA 插件开发》第二节:开发摸鱼看书的侧边栏窗体

但目前在 IDEA 中开发这样的功能只需要拖拽窗体就可以,还是蛮容易的。...创建 UI 窗体 2.1 创建方式 New -> Swing UI Designer -> GUI Form 在 Java 中创建窗体的方式主要有 AWT、Swing、JavaFx,由于 IDEA 使用...那么这里 Swing 窗体的创建可以是自己手写窗体结构,也可以使用可视化拖拽的 GUI Form 如果你的窗体不复杂,其实拖拽的方式就可以满足使用。...最终这里的代码标签代码会展示到 SettingUI.java 中,而渲染内容会被隐藏,这样的方式也比较方便控制一些自定义内容的添加,例如事件和新窗体等 另外在 SettingUI.java 中,还需要在构造函数添加一个按钮事件...,也是通过拖拽到面板中,用于展示路径文件内容。

3.2K40

WinForm学习

它比 C、C++、Java 提供了更多的数据类型,并且每个数据类型都是固定大小的。...2)通过工具箱中的label标签,button按钮,comboBox下拉按钮,直接在拖拽窗体中;按钮的单击事件直接双击可以跳到对应的方法中进行代码编辑;还需要修改对应标签属性中的Name,方便后续的编辑...可以通过属性中的Click指定不同按钮的相同事件 11)容器 在容器中可以放入需要的组件 12)属性 Anchor属性可以内部容器窗体的拉伸大小随外部窗体的改变而改变...Dock属性控件停靠在窗体的边缘或者填充窗体 IsMdiContainer 一个窗体设置为主窗体 ControlBox是窗体中的最大最小设置为不可见状态 AcceptButton...2.控件的使用不仅可以通过拖拽的方式实现,也可以使用代码的方式实现,添加到Controls中,然后编写相应的逻辑代码。

3.2K10

【愚公系列】2023年11月 Winform控件专题 MenuStrip控件详解

《博客内容》:.NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、物联网、网络安全、大数据、人工智能、U3D游戏、小程序等相关领域知识。...在Visual Studio中使用MenuStrip控件非常简单,只需要在窗体设计器中拖拽一个MenuStrip控件到窗体上即可。...AllowItemReorder属性允许用户通过拖拽菜单项来重新排列它们的位置。当设置为true时,用户可以拖拽菜单项来改变它们的位置。当设置为false时,则不能拖拽菜单项。...窗体右键菜单:MenuStrip可以作为窗体或控件的右键菜单,在鼠标右键点击时弹出一个下拉菜单,提供相应的功能选项。...接下来,一个MenuStrip控件(MenuStrip1)拖放到窗体(Form1)上。

24711

窗体UserForm——选项按钮

还是以前面激活工作表的功能为例: 在不知道有多少个工作表的时候,如何显示一个窗体界面,出现每一个工作表名称的选项,选中后按按钮激活工作表。...由于不确定工作表的数量,所以不能通过拖拽的方式添加指定数量的控件,这时候就需要用到UserForm的Initialize事件,在UserForm初始化的时候来添加控件,首先仍然拖拽一个命令按钮在窗体的最上面...,防止工作表太多看不到 Me.Height = itop + 20 End Sub CommandButton1就是手动拖拽的命令按钮,在属性窗口里可以看到,它代表的是名称,相当于是一个变量名称...控件的Top 、Height、Left、Caption等属性,都可以通过窗体设计界面,先拖拽一个相应的控件,然后在属性窗口查看控件所具有的属性。...关键字Me,在这里就是指添加的窗体UserForm1,这个关键字还可以在类模块里使用,所代表的也就是那个类。

1.7K10

C#自定义控件之-winform美化「建议收藏」

对于系统自带的窗体,博主实在不敢恭维,测试时使用方便快捷,但真正项目中无法使用,只因不美观的外表,每次都很头疼窗体的美化,这里列出一些需要解决的问题和自己收集到的解决方法,如有错误请指出。...以上是工具的基本截图,在工具的制作中对窗体的自定义包括以下几点: 一、无边框拖动窗体 当设置窗体的formboderstyle为null时,系统自带的窗体拖拽属性就失效了,需要自己写这一部分。...在这个工具里博主曹勇panel控件当作窗体的头部,因此实现窗体拖拽也就是实现拖拽panel时窗体位置发生变化,代码如下: 首先引入系统api [DllImport(“user32.dll”, CharSet...} } 二、无边框窗体最大化后软件占满全屏无法显示底部工具栏 当无边框窗体最大化时会出现全屏的问题,为了解决这个问题,需要在初始化时限定窗体的大小...当窗体设置为无边框后系统自带的阴影效果就失效了,需要自己手动添加,为了以后使用方便,我特意把整个美化做成了单独的窗体类,以后使用直接继承即可实现效果,这样做可以一劳永逸(主要是博主懒,哈哈),在此声明

2.2K40

《IntelliJ IDEA 插件开发》第 五 节:IDEA工程右键菜单,自动生成ORM代码

拖拽Swing面板 3. 配置鼠标右键弹窗 4. 给窗体添加功能 5. 代码生成领域服务 四、测试验证 五、总结 六、系列推荐 一、前言 都能用,都能凑活用! 一个东西好几套,为了晋升都来搞。...拖拽Swing面板 ORMSettingsUI:咱们先把用于创建代码配置的面板创建出来,有了画面,就好进入了。 面板包括生成 PO、DAO、XML 的代码路径,以及配置数据库和选择表的内容。...,这个UI窗体就是我们上面拖拽出来的配置面板,ORMSettingsUI 接下来我们还需要把这个 Action 配置到 plugin.xml 文件中,才能被右键菜单创建出来。...给窗体添加功能 这一步其实干的就是注入灵魂的事情,让窗体活起来。给输入框添加内容、给按钮添加事件、给确认按钮增加上生成创建ORM代码块的上下文。...virtualFile) { ORMSettingsUI.this.poPath.setText(virtualFile.getPath()); } }); 还记得我们提到的拖拽

1.7K10
领券