⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 windowsformapp.cs

📁 workflow foundaction 工作流设计器
💻 CS
字号:
//---------------------------------------------------------------------
//  This file is part of the WindowsWorkflow.NET web site samples.
// 
//  Copyright (C) Microsoft Corporation.  All rights reserved.
// 
//  This source code is intended only as a supplement to Microsoft
//  Development Tools and/or on-line documentation.  See these other
//  materials for detailed information regarding Microsoft code samples.
// 
//  THIS CODE AND INFORMATION ARE PROVIDED AS IS WITHOUT WARRANTY OF ANY
//  KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
//  IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
//  PARTICULAR PURPOSE.
//---------------------------------------------------------------------

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.ComponentModel.Design;
using WorkflowDesignerControl;
using System.Drawing.Design;
using System.Workflow.ComponentModel.Design;

namespace WorkflowDesignerExample
{
	public partial class WindowsFormApp : Form
	{
		public WindowsFormApp()
		{
			InitializeComponent();
		}

      
        #region event handlers

        private void SaveMenuItem_Click(object sender, EventArgs e)
        {
            this.workflowDesignerControl1.Save(null);
        }

        private void NewMenuItem_Click(object sender, EventArgs e)
        {
            this.workflowDesignerControl1.ShowDefaultWorkflow();
        }

        private void OpenMenuItem_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();
            openFileDialog.Filter = "xoml files (*.xoml)|*.xoml|All files (*.*)|*.*";
            openFileDialog.FilterIndex = 1;
            openFileDialog.RestoreDirectory = true;
            if (openFileDialog.ShowDialog() == DialogResult.OK)
            {
                this.workflowDesignerControl1.Dock = DockStyle.Fill;
                this.workflowDesignerControl1.LoadWorkflow(openFileDialog.FileName);

                ToolboxService toolbox = ((IServiceProvider)this.workflowDesignerControl1).GetService(typeof(IToolboxService)) as ToolboxService;
                if (toolbox != null)
                {
                    toolbox.BorderStyle = BorderStyle.FixedSingle;
                    toolbox.Dock = DockStyle.Fill;
                    this.toolBoxSplitContainer.Panel1.Controls.Add(toolbox);
                }
            }
        }

        private void SaveAsMenuItem_Click(object sender, EventArgs e)
        {
            SaveFileDialog saveFileDialog = new SaveFileDialog();

            saveFileDialog.Filter = "xoml files (*.xoml)|*.xoml|All files (*.*)|*.*";
            saveFileDialog.FilterIndex = 1;
            saveFileDialog.RestoreDirectory = true;
            if (saveFileDialog.ShowDialog() == DialogResult.OK)
            {
                this.workflowDesignerControl1.Save(saveFileDialog.FileName);
            }
        }

        private void PageSetupMenuItem_Click(object sender, EventArgs e)
        {
            WorkflowView workflowView = this.workflowDesignerControl1.WorkflowView;
            if (null != workflowView)
            {
                WorkflowPageSetupDialog pageSetupDialog = new WorkflowPageSetupDialog(this.workflowDesignerControl1.WorkflowView as IServiceProvider);
                if (DialogResult.OK == pageSetupDialog.ShowDialog())
                    workflowView.PerformLayout();
            }
        }

        private void PrintPreviewMenuItem_Click(object sender, EventArgs e)
        {
            WorkflowView workflowView = this.workflowDesignerControl1.WorkflowView;
            if (workflowView != null)
            {
                this.workflowDesignerControl1.SuspendLayout();
                workflowView.PrintPreviewMode = !workflowView.PrintPreviewMode;
                PrintPreviewMenuItem.Checked = workflowView.PrintPreviewMode;
                workflowView.ClientSize = this.workflowDesignerControl1.ClientSize;
                this.workflowDesignerControl1.ResumeLayout(true);
            }
        }
        
        private void PrintMenuItem_Click(object sender, EventArgs e)
        {
            WorkflowView workflowView = this.workflowDesignerControl1.WorkflowView;
            if (null != workflowView)
            {
                //select printer
                PrintDialog printDialog = new System.Windows.Forms.PrintDialog();
                printDialog.AllowPrintToFile = false;
                printDialog.Document = workflowView.PrintDocument;

                try
                {
                    printDialog.ShowDialog();
                }
                catch
                {
                    string errorString = "Error selecting new printer";
                    MessageBox.Show(this, errorString, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
            }
        }

        private void ExitMenuItem_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void CutMenuItem_Click(object sender, EventArgs e)
        {
            this.workflowDesignerControl1.InvokeStandardCommand(StandardCommands.Cut);
        }

        private void CopyMenuItem_Click(object sender, EventArgs e)
        {
            this.workflowDesignerControl1.InvokeStandardCommand(StandardCommands.Copy);
        }

        private void PasteMenuItem_Click(object sender, EventArgs e)
        {
            this.workflowDesignerControl1.InvokeStandardCommand(StandardCommands.Paste);
        }

        private void DeleteMenuItem_Click(object sender, EventArgs e)
        {
            this.workflowDesignerControl1.InvokeStandardCommand(StandardCommands.Delete);
        }

        private void zoom400MenuItem_Click(object sender, EventArgs e)
        {
            this.workflowDesignerControl1.InvokeStandardCommand(WorkflowMenuCommands.Zoom400Mode);
        }

        private void zoom300MenuItem_Click(object sender, EventArgs e)
        {
            this.workflowDesignerControl1.InvokeStandardCommand(WorkflowMenuCommands.Zoom300Mode);
        }

        private void zoom200MenuItem_Click(object sender, EventArgs e)
        {
            this.workflowDesignerControl1.InvokeStandardCommand(WorkflowMenuCommands.Zoom200Mode);
        }

        private void zoom150MenuItem_Click(object sender, EventArgs e)
        {
            this.workflowDesignerControl1.InvokeStandardCommand(WorkflowMenuCommands.Zoom150Mode);
        }

        private void zoom100MenuItem_Click(object sender, EventArgs e)
        {
            this.workflowDesignerControl1.InvokeStandardCommand(WorkflowMenuCommands.Zoom100Mode);
        }

        private void zoom75MenuItem_Click(object sender, EventArgs e)
        {
            this.workflowDesignerControl1.InvokeStandardCommand(WorkflowMenuCommands.Zoom75Mode);
        }

        private void zoom50MenuItem_Click(object sender, EventArgs e)
        {
            this.workflowDesignerControl1.InvokeStandardCommand(WorkflowMenuCommands.Zoom50Mode);
        }

        private void zoom10MenuItem_Click(object sender, EventArgs e)
        {
            this.workflowDesignerControl1.WorkflowView.Zoom = 10;
        }

        private void zoomShowAllMenuItem_Click(object sender, EventArgs e)
        {
            this.workflowDesignerControl1.InvokeStandardCommand(WorkflowMenuCommands.ShowAll);
        }

        private void zoomInNavigationMenuItem_Click(object sender, EventArgs e)
        {
            this.workflowDesignerControl1.InvokeStandardCommand(WorkflowMenuCommands.ZoomIn);
            this.zoomInToolButton.Checked = true;
        }

        private void zoomOutNavigationMenuItem_Click(object sender, EventArgs e)
        {
            this.workflowDesignerControl1.InvokeStandardCommand(WorkflowMenuCommands.ZoomOut);
            this.zoomOut.Checked = true;
        }

        private void panNavigationMenuItem_Click(object sender, EventArgs e)
        {
            this.workflowDesignerControl1.InvokeStandardCommand(WorkflowMenuCommands.Pan);
        }

        private void defaultNavigationMenuItem_Click(object sender, EventArgs e)
        {
            this.workflowDesignerControl1.InvokeStandardCommand(WorkflowMenuCommands.DefaultFilter);
        }

        private void expandMenuItem_Click(object sender, EventArgs e)
        {
            this.workflowDesignerControl1.InvokeStandardCommand(WorkflowMenuCommands.Expand);
        }

        private void collapseMenuItem_Click(object sender, EventArgs e)
        {
            this.workflowDesignerControl1.InvokeStandardCommand(WorkflowMenuCommands.Collapse);
        }

        
        //zoom level combo box handling
        private bool zoomLevelDirty = false;

        private void zoomLevelToolStripButton_SelectedIndexChanged(object sender, EventArgs e)
        {
            ParseZoomLevelValue();
        }

        private void zoomLevelToolStripButton_Leave(object sender, EventArgs e)
        {
            if (this.zoomLevelDirty)
            {
                ParseZoomLevelValue();
                this.zoomLevelDirty = false;
            }
        }

        private void ParseZoomLevelValue()
        {
            //parse the value
            string newZoom = zoomLevelToolStripButton.Text.Trim();
            if (newZoom.EndsWith("%"))
                newZoom = newZoom.Substring(0, newZoom.Length - 1);

            if (newZoom.Length > 0)
            {
                string errorMessage = null;

                try
                {
                    this.workflowDesignerControl1.WorkflowView.Zoom = Convert.ToInt32(newZoom);
                }
                catch (FormatException)
                {
                    errorMessage = "Invalid Zoom Measurement";
                }
                catch
                {
                    errorMessage = "Invalid Zoom Range";
                }

                if (errorMessage != null)
                    MessageBox.Show(this, errorMessage);
            }
        }

        private void zoomLevelToolStripButton_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode != Keys.Enter && e.KeyCode != Keys.Escape)
            {
                zoomLevelDirty = true;
            }
        }

        private void zoomLevelToolStripButton_KeyUp(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                ParseZoomLevelValue();
                zoomLevelDirty = false;
                this.workflowDesignerControl1.WorkflowView.Focus();
            }
            else if (e.KeyCode == Keys.Escape)
            {
                //revert the changes back to the zoom level from the workflow
                zoomLevelToolStripButton.Text = this.workflowDesignerControl1.WorkflowView.Zoom + "%";
                zoomLevelDirty = false;
                this.workflowDesignerControl1.WorkflowView.Focus();
            }
            else
            {
                zoomLevelDirty = true;
            }
        }

        
        private void CompileWorkflow(object sender, EventArgs e)
        {
            this.workflowDesignerControl1.CompileWorkflow();

        }
        #endregion

    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -