纪念一下我用winform DesignSurface遇到的难点

研究过窗体设计器的都知道,鼠标事件几乎都被屏蔽掉,都被用去做拖动和选择的一些功能。

重新添加鼠标事件的方式如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;
using System.ComponentModel.Design;
using System.Windows.Forms;

namespace DesignSurfaceExt
{
    public enum MyMouseButtons
    {
        Leave = 0,//鼠标移出 
        Move,//鼠标移入
        LeftDown,//鼠标左键down
        LeftUp, //鼠标左键up
        DoubleClick,//鼠标双击 
        RightDown,//鼠标右键down
        RightUp,//鼠标右键up
        Wheel//鼠标滚轮动
    }
    public class EventMouse : System.Windows.Forms.Design.ControlDesigner
    {
        private MyMouseButtons MouseState = 0;

        private ISelectionService SelectionService
        {
            get
            {
                return this.GetService(typeof(ISelectionService)
### 回答1: WinForms DesignSurface是Windows窗体应用程序开发中的一个概念,它提供了一个可视化的设计环境,使开发人员能够方便地创建和编辑窗体和控件。 DesignSurface作为一个虚拟的窗体容器,可以让开发人员在不显示实际窗体的情况下创建和编辑WinForms应用程序的视图。开发人员可以在DesignSurface上通过拖放、调整大小和布局控件,实时预览应用程序的外观和行为。 通过DesignSurface,开发人员可以使用设计时数据源、属性窗口和工具箱来方便地配置和定制控件的属性和行为。设计时数据源允许开发人员在设计环境中使用虚拟数据源来预览和测试控件的数据绑定功能。属性窗口提供了一个直观的界面,用于修改控件的各种属性。工具箱则提供了常用控件和组件的集合,开发人员可以从中选择并拖放到DesignSurface上。 另外,DesignSurface还支持事件处理和命令操作。开发人员可以在DesignSurface上编写代码来处理控件的事件,以实现应用程序的交互逻辑。同时,DesignSurface还提供了一些常用的命令,用于执行常见的操作,如复制、粘贴、撤销和重做。 总之,WinForms DesignSurface为开发人员提供了一个方便、灵活和高效的可视化设计环境,使他们能够更轻松地创建和编辑WinForms应用程序的界面。通过DesignSurface,开发人员可以快速实现应用程序的UI定制和交互逻辑的开发,提高开发效率,加快应用程序的上线速度。 ### 回答2: 在WinForm中,DesignSurface(设计表面)是一个用于在设计时创建和编辑自定义组件的虚拟表面。它允许开发人员在可视化环境中使用拖放、调整大小、旋转等操作来设计和构建用户界面。以下是关于WinForm DesignSurface的一些关键特点和用途: 1. 设计自定义组件:DesignSurface提供了一个交互式视图,开发人员可以通过拖放和调整大小等操作来设计自定义组件。这使得开发人员能够更方便地构建和编辑复杂的用户界面。 2. 支持可视化设计:DesignSurface支持可视化设计,即开发人员可以直接在设计器中预览和编辑用户界面的外观和布局。通过使用设计器提供的工具和属性面板,开发人员可以轻松地进行修改和调整。 3. 解耦设计和运行时环境:DesignSurface通过将设计图面与实际的运行时环境分离,使开发人员能够独立地进行设计和开发工作。这意味着开发人员可以在不运行应用程序的情况下进行设计,并且可以随时保存和加载设计状态。 4. 支持数据绑定:DesignSurface还提供了对数据绑定的支持。开发人员可以使用数据绑定工具与设计环境中的数据源进行交互,从而更方便地将数据与用户界面的视图关联起来。 总之,WinForm DesignSurface是一个强大的工具,可以帮助开发人员在设计时创建和编辑自定义组件。它提供了交互式的可视化设计环境,支持拖放、调整大小和数据绑定等操作,使开发人员能够更方便地构建和编辑复杂的用户界面。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值