コード例 #1
0
        private void MainMenuItemClick(object sender, EventArgs e) //refering to the right click context menu for resources.
        {
            MenuItem     CurrentMenu     = (MenuItem)sender;
            string       Name            = CurrentMenu.Parent.Name;
            ResourceData CurrentResource = null;

            foreach (ResourceData R in CurrentResources)
            {
                if (R.Name.Equals(Name))
                {
                    CurrentResource = R;
                    break;
                }
            }
            if (CurrentMenu.Text.Equals("Rename..."))
            {
                TextBox NameTextBox = new TextBox();
                NameTextBox.Text = Name;
                //NameTextBox.Size = new Size(NameTextBox.Height, NameTextBox.Size.Width * 10);
                TableLayoutPanel PanelClickedOn = null;
                Label            NameLabel      = null;

                foreach (Control C in ResourcesLeftPanel.Controls)
                {
                    TableLayoutPanel Current = (TableLayoutPanel)C;
                    NameLabel = (Label)Current.GetChildAtPoint(new Point(50, 50), GetChildAtPointSkip.None);
                    if (NameLabel.Text.Equals(Name))
                    {
                        PanelClickedOn = Current;
                        break;
                    }
                }
                foreach (Control C in ResourcesRightPanel.Controls)
                {
                    TableLayoutPanel Current = (TableLayoutPanel)C;
                    NameLabel = (Label)Current.GetChildAtPoint(new Point(50, 50), GetChildAtPointSkip.None);
                    if (NameLabel.Text.Equals(Name))
                    {
                        PanelClickedOn = Current;
                        break;
                    }
                }
                PanelClickedOn.Controls.Remove(NameLabel);
                PanelClickedOn.Controls.Add(NameTextBox, 0, 1);
                PanelClickedOn.SetColumnSpan(NameTextBox, 5);
                NameTextBox.TextAlign = HorizontalAlignment.Center;
                NameTextBox.SelectAll();
                NameTextBox.Name     = Name;
                NameTextBox.KeyDown += NameTextBoxKeyDown;

                //UpdateResourceEvent?.Invoke(CurrentResource.Name, GetIsLinkFromR(CurrentResource), null, UpdatedName, null, CurrentResource.Unit, CurrentResource.Type, CurrentResource.Comments);
            }
        }
コード例 #2
0
        private void TableLayoutPanel_DragOver(object sender, DragEventArgs e)
        {
            if (!e.Data.GetDataPresent(typeof(Button)))
            {
                return;
            }

            e.Effect = e.AllowedEffect;
            var draggedButton = (Button)e.Data.GetData(typeof(Button));

            var pt     = tableLayoutPanel.PointToClient(new Point(e.X, e.Y));
            var button = (Button)tableLayoutPanel.GetChildAtPoint(pt);

            if (button != null)
            {
                var pos = tableLayoutPanel.GetPositionFromControl(button);
                tableLayoutPanel.Controls.Add(draggedButton, pos.Column, pos.Row);
                draggedButton.Tag = null;
            }
        }
コード例 #3
0
        private void toolStripMenuItem3_Click(object sender, EventArgs e)
        {
            ToolStripMenuItem toolStripMenuItem = (ToolStripMenuItem)sender;
            ContextMenuStrip  contextMenuStrip  = (ContextMenuStrip)toolStripMenuItem.GetCurrentParent();
            Control           sourceControl     = contextMenuStrip.SourceControl;
            Item item = sourceControl.Tag as Item;

            if (item != null)
            {
                TableLayoutPanel tableLayoutPanel = sourceControl.Parent as TableLayoutPanel;
                if (tableLayoutPanel != null)
                {
                    int row = tableLayoutPanel.GetRow(sourceControl);
                    if (row >= 0)
                    {
                        Control editableControl = item.GetEditableControl();
                        this.editors.GetOrAdd(this.flowLayoutPanel1.Tag as string, new ConcurrentBag <Control>()).Add(editableControl);
                        tableLayoutPanel.GetChildAtPoint(new Point(row, 1));
                        tableLayoutPanel.Controls.Remove(sourceControl);
                        tableLayoutPanel.Controls.Add(editableControl, 1, row);
                    }
                }
            }
        }