首页 > 其他分享 >Csharp Winform 流程图 (一、定义接口)

Csharp Winform 流程图 (一、定义接口)

时间:2024-08-05 14:31:01浏览次数:13  
标签:set 流程图 PointF get int void Csharp Description Winform

一、创建接口 ,确定接下来流程创建的过程中我们需要使用的哪些方法及变量,同时为后续提供其他人员开发自定义节点图形做好基础。

 

1、基础接口定义:IBase.cs

    internal interface IBase
    {
        Control Owner { get; set; }
        string Id { get; set; }
        string Name { get; set; }
        int X { get; set; }
        int Y { get; set; }
        int Width { get; set; }
        int Height { get; set; }
        int Left { get; }
        int Top { get; }
        int Right { get; }
        int Bottom { get; }
        bool Drag { get; }
        bool Capture { get; }
        bool Selected { get; set; }
        bool Hovering { get; }
        bool ReadOnly { get; }
        Color BorderColor { get; set; }
        Point Loaction { get; }
        Size Size { get; }
        RectangleF ClientRectangleF { get; }
        Rectangle ClientRectangle { get; }
        Color BackColor { get; set; }
        string Text { get; set; }
        Font Font { get; set; }
    }

  2、事件接口定义:IEvent.cs

    internal interface IEvent
    {
        void onm ouseDown(MouseEventArgs e);
        void onm ouseEnter(EventArgs e);
        void onm ouseLeave(EventArgs e);
        void onm ouseHover(EventArgs e);
        void onm ouseMove(MouseEventArgs e);
        void onm ouseUp(MouseEventArgs e);
        void onm ouseWheel(MouseEventArgs e);
        void OnMove(EventArgs e);
        void OnPaint(PaintEventArgs e);
        void OnPaddingChanged(EventArgs e);
        void onm ouseDoubleClick(MouseEventArgs e);
    }

  3、拓展一部分事件接口定义:IEventCustom.cs

    internal interface IEventCustom
    {
        event EventHandler PointChange;
        bool HasPointChange();
        void OnPointChange(EventArgs e);
    }

  4、流程控制接口定义:IMaster.cs

    internal interface IMaster
    {
        /// <summary>
        /// 是否允许拖动
        /// </summary>
        [Description("是否允许拖动")]
        bool Drag { get; }
        /// <summary>
        /// 节点图形集合
        /// </summary>
        [Description("节点图形集合")]
        List<IShape> Shapes { get; }
        /// <summary>
        /// 连线图形
        /// </summary>
        [Description("连线图形")]
        ShapeLinks ShapeLink { get; }
        /// <summary>
        /// Master的拥有者
        /// </summary>
        [Description("Master的拥有者")]
        Control Owner { get; set; }
        /// <summary>
        /// 缩放因子
        /// </summary>
        [Description("缩放因子")]
        float ScaleFactor { get; set; }
        /// <summary>
        /// 平移转换
        /// </summary>
        [Description("缩放因子")]
        PointF DefaultTranslate { get; }
        /// <summary>
        /// 平移转换偏量
        /// </summary>
        [Description("平移转换偏量")]
        PointF TranslateOffset { get; }
        /// <summary>
        /// 鼠标偏移量
        /// </summary>
        [Description("鼠标偏移量")]
        PointF MouseOffset { get; }
        /// <summary>
        /// 坐标转换
        /// </summary>
        /// <param name="pointF">需要被转换的坐标</param>
        /// <returns></returns>
        PointF Pto(PointF pointF);
        /// <summary>
        /// 坐标转换
        /// </summary>
        /// <param name="pointF">需要被转换的坐标</param>
        /// <returns></returns>
        PointF PointTo(PointF pointF);
        /// <summary>
        /// 坐标转换
        /// </summary>
        /// <param name="pointF">需要被转换的坐标</param>
        /// <returns></returns>
        PointF Pform(PointF pointF);
        /// <summary>
        /// 坐标转换
        /// </summary>
        /// <param name="pointF">需要被转换的坐标</param>
        /// <returns></returns>
        PointF PointFrom(PointF pointF);
        /// <summary>
        /// 节点连线数据集合
        /// </summary>
        [Description("连线数据集合")]
        List<Link> Links { get; }
        /// <summary>
        /// 节点连线坐标数据集合
        /// </summary>
        [Description("节点连线坐标数据集合")]
        List<LinkPoint> LinkPoints { get; }
        /// <summary>
        /// 鼠标悬停的图形
        /// </summary>
        [Description("鼠标悬停的图形")]
        Tuple<ShapeModule, MouseEventArgs> MouseHoverShape { get; }
        void DrawGrid(Graphics graphics, Rectangle area, int majorStep, int minorStep);
        void SetNotSelectedShapeAll(IShape shape = null);
    }

  5、节点图形绘制接口定义:IShape.cs  继承 IBase

    internal interface IShape:IBase
    {
        string FromShapId { get; set; }
        ShapeType ShapeType { get; set; }
        Region ClientRegion { get; set; }
        PointF[] ClientRegionPointFs { get; set; }
        RectangleF ClientRegionRect { get; set; }
        Point MouseOffset { get; }
        Point[] MouseOffsets { get; }
        int BorderWidth {  get; }
        float ScaleFactor { get;set; }
        Image Image { get; set; }
        PointF TranslateOffset { get;  }
        RectangleF RectScale { get; }
        Point Centre { get; }
        PointF Pto(PointF pointF);
        PointF PointTo(PointF pointF);
        PointF Pform(PointF pointF);
        PointF PointFrom(PointF pointF);
        /// <summary>
        /// 当前实例的浅表副本 复杂属性(引用类型....)不适用
        /// </summary>
        /// <returns></returns>
        //IShape Clone();
    }

  

标签:set,流程图,PointF,get,int,void,Csharp,Description,Winform
From: https://www.cnblogs.com/CaiJimi/p/18343134

相关文章

  • Java中学习绘制流程图
    绘制程序流图目录绘制程序流图流程图的基本步骤和方法流程图中的图形符号及其作用:示例流程图:流程图的基本步骤和方法程序流程图(Flowchart)是一种图形化表示程序逻辑的方式,它使用一系列标准化的图形符号来表示算法或工作流程中的步骤和决策点。以下是绘制程序流程图的基本步骤和......
  • 界面控件DevExpress WinForms v24.1系统环境配置要求
    DevExpressWinForms拥有180+组件和UI库,能为WindowsForms平台创建具有影响力的业务解决方案。DevExpressWinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任!本文档包含有关安装和使用 DevExpressWinForms ......
  • 1388、STM32单片机心率(脉搏)MAX30102血氧体温检测阈值报警无线蓝牙远程(程序+原理图+
    毕设帮助、开题指导、技术解答(有偿)见文未 目录方案选择单片机的选择显示器选择方案一、设计功能二、实物图三、原理图四、程序源码五、PCB图六、proteus仿真程序流程图:原理图文字讲解:参考论文:资料包括:需要完整的资料可以点击下面的名片加下我,找我要资源压缩......
  • 1386、STM32单片机心率(脉搏)体温检测阈值设置报警无线蓝牙远程设计(程序+原理图+PCB
    毕设帮助、开题指导、技术解答(有偿)见文未 目录方案选择单片机的选择显示器选择方案一、设计功能二、实物图三、原理图四、程序源码五、PCB图六、proteus仿真程序流程图:原理图文字讲解:参考论文:资料包括:需要完整的资料可以点击下面的名片加下我,找我要资源压缩......
  • Markdown 达人必备!轻松几步画出专业流程图
    流程图,顾名思义,就是表示一个事件或活动的流程的图示。‍‍快速入门最简单的例子:从A到BgraphTDA-->B‍效果:graphTDA-->B‍‍注意起始的关键字“grpah”是必须的,表明这是流程图。后续介绍时序图时,该关键字也要改为时序图的关键字:sequenceDiagram。‍......
  • 白盒测试基础与实践:Python示例及流程图设计
    文章目录前言一、白盒测试是什么?主要特点常用方法优点缺点二、白盒测试常用技术语句覆盖判定覆盖条件覆盖判定/条件覆盖条件组合覆盖路径覆盖三、程序流程图设计四、测试用例设计1.基本路径法2.语句覆盖3.判断覆盖4.条件覆盖5.判断/条件覆盖6.条件组合覆盖总结......
  • WInform 控件大小随窗体大小等比例缩放
    winform控件自动大小usingSystem;usingSystem.Drawing;usingSystem.Windows.Forms;usingUCControl=System.Windows.Forms.Control;///<summary>///控件自动适应///使用直接继承FormAutoSize即可///示例如下:///***示例代码***:publicForm1()///***示例代......
  • Visual Studio 2022 WinForm/Wpf打包安装程序
     VisualStudio2022WinForm/Wpf打包安装程序1.安装扩展程序2.创建并设置用于打包安装程序的项目2.1新建SetupProject项目2.2添加需要打包的应用程序文件2.3添加项目主程序2.3添加主程序的桌面和任务栏快捷方式2.5添加卸载程序2.6添加卸载程序快捷方式2.7......
  • 界面控件DevExpress WinForms,支持HTML & CSS提升用户体验(一)
    DevExpressWinForms现在可以利用HTML/CSS强大的功能,帮助受DevExpress驱动的WinForms应用程序引入现代的UI元素和用户体验!P.S:DevExpressWinForms拥有180+组件和UI库,能为WindowsForms平台创建具有影响力的业务解决方案。DevExpressWinForms能完美构建流畅、美观且易于使用的应......
  • winform界面加载慢、卡顿
    C#Winform开发窗体程序时,当控件很多时,会出现加载缓慢、闪烁的问题,或者窗体放大缩小的时候,由于控件计算比例等,也会出现显示缓慢、闪烁的问题。解决方法:///<summary>///双缓冲,解决界面加载、放大、缩小的卡顿问题///</summary>protectedo......