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 }
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; }
public TestElement ElementWithFocus() { TestElement elFocus = null; foreach (Control ctrl in this.Controls) { TestElement element = (TestElement)ctrl; if (element.HasFocus) { elFocus = element; break; } } return(elFocus); }
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(); } }
public void Add(TestElement testElement) { TestElements.Add(testElement); Controls.Add(testElement); PropertyViewer().Add(testElement); }