private void BtnAdd_Click(object sender, EventArgs e) { if (Manager.ObjectSet == null) { return; } bool name_collision = true; int new_element_name_index = LBObjects.Items.Count; string new_element_name = ""; while (name_collision == true) { new_element_name = "obj" + new_element_name_index; name_collision = false; foreach (object item in LBObjects.Items) { if (new_element_name.CompareTo(item) == 0) { name_collision = true; ++new_element_name_index; continue; } } } Rectangle selection = SurfaceTexture.GetSelection(); ObjectSetElementData new_element = new ObjectSetElementData { ElementName = new_element_name, OffsetU = selection.X, OffsetV = selection.Y, Size = new SSize(selection.Width, selection.Height) }; Manager.ObjectSet.Elements.Add(new_element); LBObjects.Items.Add(new_element_name); LBObjects.SelectedIndex = LBObjects.Items.Count - 1; }