示例#1
0
        public void PasteElement(Point locationToPaste)
        {
            try
            {
                var    xmlSerial = new XmlSerializer(typeof(SerializableTestElement));
                string str       = Clipboard.GetText();

                TestElement pastedElement = null;
                using (MemoryStream stream = new MemoryStream(Encoding.ASCII.GetBytes(str)))
                {
                    if (str.Contains("SerializableImageBox"))
                    {
                        pastedElement = ((SerializableImageBox)xmlSerial.Deserialize(stream)).Deserialize(this, lastWasCopy);
                    }
                    else if (str.Contains("SerializableItemSet"))
                    {
                        pastedElement = ((SerializableItemSet)xmlSerial.Deserialize(stream)).Deserialize(this, lastWasCopy);
                    }
                    else if (str.Contains("SerializableTextBox"))
                    {
                        pastedElement = ((SerializableTextBox)xmlSerial.Deserialize(stream)).Deserialize(this, lastWasCopy);
                    }
                }
                if (pastedElement != null)
                {
                    pastedElement.GridPosition = locationToPaste;
                    pastedElement.HasFocus     = true;
                }
            }
            catch (Exception ex)
            {
                Logger.LogLow(ex.Message);
            }
            lastWasCopy = true; // If multiple pastes after one cut then different names are needed
        }
示例#2
0
        public void CopyElement(bool deleteAfter = false)
        {
            TestElement element = ElementWithFocus();

            if (element != null)
            {
                Clipboard.Clear();
                var xmlSerial = new XmlSerializer(typeof(SerializableTestElement));
                using (var stream = new MemoryStream())
                {
                    using (var reader = new StreamReader(stream))
                    {
                        if (element.GetType() == typeof(ImageBox))
                        {
                            xmlSerial.Serialize(stream, new SerializableImageBox((ImageBox)element));
                        }
                        else if (element.GetType() == typeof(ItemSet))
                        {
                            xmlSerial.Serialize(stream, new SerializableItemSet((ItemSet)element));
                        }
                        else if (element.GetType() == typeof(TextBox))
                        {
                            xmlSerial.Serialize(stream, new SerializableTextBox((TextBox)element));
                        }
                        stream.Position = 0;
                        Clipboard.SetText(reader.ReadToEnd());
                    }
                }
            }
            if (deleteAfter)
            {
                RemoveTestElement(element, false);
            }
            lastWasCopy = !deleteAfter;
        }
示例#3
0
        public TestElement ElementWithFocus()
        {
            TestElement elFocus = null;

            foreach (Control ctrl in this.Controls)
            {
                TestElement element = (TestElement)ctrl;
                if (element.HasFocus)
                {
                    elFocus = element;
                    break;
                }
            }
            return(elFocus);
        }
示例#4
0
        public void RemoveTestElement(TestElement testElement, bool confirmationNecessary = true)
        {
            bool confirmed = false;

            if (confirmationNecessary)
            {
                if (MessageBox.Show("Are you sure you want to delete " + testElement.Name + "?", "Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
                {
                    confirmed = true;
                }
            }
            else
            {
                confirmed = true;
            }
            if (confirmed)
            {
                TestElements.Remove(testElement);
                Controls.Remove(testElement);
                PropertyViewer().Remove(testElement);
                testElement.Dispose();
            }
        }
示例#5
0
 public void Add(TestElement testElement)
 {
     TestElements.Add(testElement);
     Controls.Add(testElement);
     PropertyViewer().Add(testElement);
 }