コード例 #1
0
 public NodeForm(Page page, Node node) : this()
 {
     ArgumentForm.Create(page, node).Parent = this.argumentPanel;
     VariableForm.Create(page).Parent       = this.variablePanel;
     this.nodeNameTextBox.DataBindings.Add("Text", node, "Name", false, DataSourceUpdateMode.OnPropertyChanged);
     this.nodeNameTextBox.PreviewKeyDown += NodeNameTextBox_PreviewKeyDown;
     this.Text = "Activity Editor - " + node.Activity.GetType().FullName;
 }
コード例 #2
0
        public static TableLayoutPanel Create(Page page, Node node)
        {
            var activity  = node.Activity;
            var variables = page.Variables;

            var argumentPanels = new List <Panel>();

            if (ArgumentForm.Create <InArgument>(page, node) is Panel inArgumentPanel)
            {
                argumentPanels.Add(inArgumentPanel);
            }
            if (ArgumentForm.Create <OutArgument>(page, node) is Panel outArgumentPanel)
            {
                argumentPanels.Add(outArgumentPanel);
            }
            if (ArgumentForm.Create <InOutArgument>(page, node) is Panel inOutArgumentPanel)
            {
                argumentPanels.Add(inOutArgumentPanel);
            }

            var argumentTableLayoutPanel = new TableLayoutPanel
            {
                ColumnCount = 1,
                RowCount    = argumentPanels.Count,
                Dock        = DockStyle.Fill,
            };

            argumentTableLayoutPanel.RowStyles.Clear();
            foreach (var argumentPanel in argumentPanels)
            {
                argumentTableLayoutPanel.RowStyles.Add(new RowStyle(SizeType.Percent, 100F / argumentPanels.Count));
                argumentTableLayoutPanel.Controls.Add(argumentPanel, 0, argumentTableLayoutPanel.RowStyles.Count - 1);
            }

            return(argumentTableLayoutPanel);
        }