diff --git a/src/System.Windows.Forms/src/misc/ClientUtils.cs b/src/Common/src/ClientUtils.cs
similarity index 100%
rename from src/System.Windows.Forms/src/misc/ClientUtils.cs
rename to src/Common/src/ClientUtils.cs
index 69e486e2a7f..246116a1c8f 100644
--- a/src/System.Windows.Forms/src/misc/ClientUtils.cs
+++ b/src/Common/src/ClientUtils.cs
@@ -16,11 +16,11 @@ namespace System.Windows.Forms
#endif
{
using System;
- using System.Reflection;
- using System.Diagnostics.CodeAnalysis;
- using System.Globalization;
using System.Collections;
using System.Diagnostics;
+ using System.Diagnostics.CodeAnalysis;
+ using System.Globalization;
+ using System.Reflection;
// Miscellaneous utilities
static internal class ClientUtils {
diff --git a/src/System.Windows.Forms/src/misc/DpiHelper.DpiAwarenessContext.cs b/src/Common/src/DpiHelper.DpiAwarenessContext.cs
similarity index 100%
rename from src/System.Windows.Forms/src/misc/DpiHelper.DpiAwarenessContext.cs
rename to src/Common/src/DpiHelper.DpiAwarenessContext.cs
diff --git a/src/System.Windows.Forms/src/System/Windows/Forms/RTLAwareMessageBox.cs b/src/Common/src/RTLAwareMessageBox.cs
similarity index 64%
rename from src/System.Windows.Forms/src/System/Windows/Forms/RTLAwareMessageBox.cs
rename to src/Common/src/RTLAwareMessageBox.cs
index 591d464dc4d..0fc63a706cd 100644
--- a/src/System.Windows.Forms/src/System/Windows/Forms/RTLAwareMessageBox.cs
+++ b/src/Common/src/RTLAwareMessageBox.cs
@@ -4,26 +4,19 @@
namespace System.Windows.Forms {
- using System;
- using System.Windows.Forms;
-
- ///
- ///
- ///
- /// The Show method displays a message box that can contain text, buttons, and symbols that
- /// inform and instruct the user. This MessageBox will be RTL, if the resources
- /// for this dll have been localized to a RTL language.
- ///
- ///
+
+ using System.Resources;
+
+ ///
+ /// The Show method displays a message box that can contain text, buttons, and symbols that inform and instruct the user.
+ /// This MessageBox will be RTL, if the resources for this dll have been localized to a RTL language.
+ ///
internal sealed class RTLAwareMessageBox {
- ///
- ///
- ///
+ ///
/// Displays a message box with specified text, caption, and style.
/// Makes the dialog RTL if the resources for this dll have been localized to a RTL language.
- ///
- ///
+ ///
public static DialogResult Show(IWin32Window owner, string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon,
MessageBoxDefaultButton defaultButton, MessageBoxOptions options) {
if (RTLAwareMessageBox.IsRTLResources) {
@@ -32,10 +25,9 @@ public static DialogResult Show(IWin32Window owner, string text, string caption,
return MessageBox.Show(owner, text, caption, buttons, icon, defaultButton, options);
}
- ///
- /// Tells whether the current resources for this dll have been
- /// localized for a RTL language.
- ///
+ ///
+ /// Tells whether the current resources for this dll have been localized for a RTL language.
+ ///
public static bool IsRTLResources {
get {
return SR.RTL != "RTL_False";
diff --git a/src/System.Design/src/ApiCompatBaseline.netcoreapp.txt b/src/System.Design/src/ApiCompatBaseline.netcoreapp.txt
index 9aeed202edd..b2062a38035 100644
--- a/src/System.Design/src/ApiCompatBaseline.netcoreapp.txt
+++ b/src/System.Design/src/ApiCompatBaseline.netcoreapp.txt
@@ -4,7 +4,6 @@ TypesMustExist : Type 'System.ComponentModel.Design.ActiveDesignSurfaceChangedEv
TypesMustExist : Type 'System.ComponentModel.Design.ArrayEditor' does not exist in the implementation but it does exist in the contract.
TypesMustExist : Type 'System.ComponentModel.Design.BinaryEditor' does not exist in the implementation but it does exist in the contract.
TypesMustExist : Type 'System.ComponentModel.Design.ByteViewer' does not exist in the implementation but it does exist in the contract.
-TypesMustExist : Type 'System.ComponentModel.Design.CollectionEditor' does not exist in the implementation but it does exist in the contract.
TypesMustExist : Type 'System.ComponentModel.Design.ComponentActionsType' does not exist in the implementation but it does exist in the contract.
TypesMustExist : Type 'System.ComponentModel.Design.DateTimeEditor' does not exist in the implementation but it does exist in the contract.
TypesMustExist : Type 'System.ComponentModel.Design.DesignerActionHeaderItem' does not exist in the implementation but it does exist in the contract.
@@ -41,7 +40,6 @@ TypesMustExist : Type 'System.ComponentModel.Design.MenuCommandsChangedEventHand
TypesMustExist : Type 'System.ComponentModel.Design.MenuCommandsChangedType' does not exist in the implementation but it does exist in the contract.
TypesMustExist : Type 'System.ComponentModel.Design.MenuCommandService' does not exist in the implementation but it does exist in the contract.
TypesMustExist : Type 'System.ComponentModel.Design.MultilineStringEditor' does not exist in the implementation but it does exist in the contract.
-TypesMustExist : Type 'System.ComponentModel.Design.ObjectSelectorEditor' does not exist in the implementation but it does exist in the contract.
TypesMustExist : Type 'System.ComponentModel.Design.ProjectTargetFrameworkAttribute' does not exist in the implementation but it does exist in the contract.
TypesMustExist : Type 'System.ComponentModel.Design.UndoEngine' does not exist in the implementation but it does exist in the contract.
TypesMustExist : Type 'System.ComponentModel.Design.Data.DataSourceDescriptor' does not exist in the implementation but it does exist in the contract.
diff --git a/src/System.Windows.Forms.Design.Editors/ref/System.Windows.Forms.Design.Editors.Ref.csproj b/src/System.Windows.Forms.Design.Editors/ref/System.Windows.Forms.Design.Editors.Ref.csproj
index e23b857822f..65b9a26d734 100644
--- a/src/System.Windows.Forms.Design.Editors/ref/System.Windows.Forms.Design.Editors.Ref.csproj
+++ b/src/System.Windows.Forms.Design.Editors/ref/System.Windows.Forms.Design.Editors.Ref.csproj
@@ -3,6 +3,7 @@
netcoreapp3.0
System.Windows.Forms.Design.Editors
+ System.ComponentModel.Design
false
diff --git a/src/System.Windows.Forms.Design.Editors/ref/System.Windows.Forms.Design.Editors.cs b/src/System.Windows.Forms.Design.Editors/ref/System.Windows.Forms.Design.Editors.cs
index 37c733f48f8..02b328533a5 100644
--- a/src/System.Windows.Forms.Design.Editors/ref/System.Windows.Forms.Design.Editors.cs
+++ b/src/System.Windows.Forms.Design.Editors/ref/System.Windows.Forms.Design.Editors.cs
@@ -6,6 +6,10 @@
// Changes to this file must follow the http://aka.ms/api-review process.
// ------------------------------------------------------------------------------
+using System.Collections;
+using System.ComponentModel;
+using System.Drawing.Design;
+
namespace System.Drawing.Design
{
[System.CLSCompliantAttribute(false)]
@@ -147,3 +151,81 @@ public ShortcutKeysEditor() { }
public override System.Drawing.Design.UITypeEditorEditStyle GetEditStyle(System.ComponentModel.ITypeDescriptorContext context) { throw null; }
}
}
+namespace System.ComponentModel.Design
+{
+ [System.CLSCompliantAttribute(false)]
+ public partial class CollectionEditor : System.Drawing.Design.UITypeEditor
+ {
+ public CollectionEditor() { }
+ public CollectionEditor(Type type) { }
+ protected Type CollectionItemType { get { throw null; } }
+ protected Type CollectionType { get { throw null; } }
+ protected ITypeDescriptorContext Context { get { throw null; } }
+ protected Type[] NewItemTypes { get { throw null; } }
+ protected virtual string HelpTopic { get { throw null; } }
+ protected virtual bool CanRemoveInstance(object value) { throw null; }
+ protected virtual bool CanSelectMultipleInstances() { throw null; }
+ protected virtual CollectionForm CreateCollectionForm() { throw null; }
+ protected virtual object CreateInstance(Type itemType) { throw null; }
+ protected virtual IList GetObjectsFromInstance(object instance) { throw null; }
+ protected virtual string GetDisplayText(object value) { throw null; }
+ protected virtual Type CreateCollectionItemType() { throw null; }
+ protected virtual Type[] CreateNewItemTypes() { throw null; }
+ protected virtual void DestroyInstance(object instance) { throw null; }
+ public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value) { throw null; }
+ public override UITypeEditorEditStyle GetEditStyle(ITypeDescriptorContext context) { throw null; }
+ protected virtual object[] GetItems(object editValue) { throw null; }
+ protected object GetService(Type serviceType) { throw null; }
+ protected virtual object SetItems(object editValue, object[] value) { throw null; }
+ protected virtual void ShowHelp() { }
+ protected abstract class CollectionForm : System.Windows.Forms.Form
+ {
+ public CollectionForm(CollectionEditor editor) { }
+ protected Type CollectionItemType { get { throw null; } }
+ protected Type CollectionType { get { throw null; } }
+ protected ITypeDescriptorContext Context { get { throw null; } }
+ public object EditValue { get { throw null; } set { } }
+ protected object[] Items { get { throw null; } set { } }
+ protected Type[] NewItemTypes { get { throw null; } }
+ protected bool CanRemoveInstance(object value) { throw null; }
+ protected virtual bool CanSelectMultipleInstances() { throw null; }
+ protected object CreateInstance(Type itemType) { throw null; }
+ protected void DestroyInstance(object instance) { }
+ protected virtual void DisplayError(Exception e) { }
+ protected override object GetService(Type serviceType) { throw null; }
+ protected internal virtual System.Windows.Forms.DialogResult ShowEditorDialog(System.Windows.Forms.Design.IWindowsFormsEditorService edSvc) { throw null; }
+ protected abstract void OnEditValueChanged();
+ }
+ }
+
+ [System.CLSCompliantAttribute(false)]
+ public partial class ObjectSelectorEditor : System.Drawing.Design.UITypeEditor
+ {
+ public ObjectSelectorEditor() { }
+ public ObjectSelectorEditor(bool subObjectSelector) { }
+ public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value) { throw null; }
+ public static void ApplyTreeViewThemeStyles(System.Windows.Forms.TreeView treeView) { }
+ public override UITypeEditorEditStyle GetEditStyle(ITypeDescriptorContext context) { throw null; }
+ public bool EqualsToValue(object value) { throw null; }
+ protected virtual void FillTreeWithData(Selector selector, ITypeDescriptorContext context, IServiceProvider provider) { }
+ public virtual void SetValue(object value) { }
+ public class Selector : System.Windows.Forms.TreeView
+ {
+ public Selector(ObjectSelectorEditor editor) { }
+ public SelectorNode AddNode(string label, object value, SelectorNode parent) { throw null; }
+ public void Clear() { }
+ protected void OnAfterSelect(object sender, System.Windows.Forms.TreeViewEventArgs e) { }
+ protected override void OnKeyDown(System.Windows.Forms.KeyEventArgs e) { }
+ protected override void OnKeyPress(System.Windows.Forms.KeyPressEventArgs e) { }
+ protected override void OnNodeMouseClick(System.Windows.Forms.TreeNodeMouseClickEventArgs e) { }
+ public bool SetSelection(object value, System.Windows.Forms.TreeNodeCollection nodes) { throw null; }
+ public void Start(System.Windows.Forms.Design.IWindowsFormsEditorService edSvc, object value) { }
+ public void Stop() { }
+ protected override void WndProc(ref System.Windows.Forms.Message m) { }
+ }
+ public class SelectorNode : System.Windows.Forms.TreeNode
+ {
+ public SelectorNode(string label, object value) : base(label) { }
+ }
+ }
+}
diff --git a/src/System.Windows.Forms.Design.Editors/src/Resources/CollectionEditor.resx b/src/System.Windows.Forms.Design.Editors/src/Resources/CollectionEditor.resx
new file mode 100644
index 00000000000..98d98548cae
--- /dev/null
+++ b/src/System.Windows.Forms.Design.Editors/src/Resources/CollectionEditor.resx
@@ -0,0 +1,556 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+ Left
+
+
+
+ True
+
+
+ NoControl
+
+
+
+ 3, 0
+
+
+ No
+
+
+ 53, 13
+
+
+ 0
+
+
+ &Members:
+
+
+ membersLabel
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ overArchingTableLayoutPanel
+
+
+ 3
+
+
+ Top, Bottom, Left, Right
+
+
+ True
+
+
+ NoControl
+
+
+ False
+
+
+ 3, 17
+
+
+ No
+
+
+ Top, Bottom, Left, Right
+
+
+ 3
+
+
+ Move Down
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAElJREFUOE9jYBje
+ 4MCBA/9hmGSfgjQCNcExlE+8OUPUAHRnI4cB0eFByBCiAhOXIURphsUTxbEAMghmCEk2o6cUijQTn+wo
+ UAkAY/VsRlvaylwAAAAASUVORK5CYII=
+
+
+
+ NoControl
+
+
+ 198, 47
+
+
+ 3, 1, 18, 3
+
+
+ No
+
+
+ 24, 24
+
+
+ 4
+
+
+ downButton
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ overArchingTableLayoutPanel
+
+
+ 0
+
+
+ Left, Right
+
+
+ True
+
+
+ 3
+
+
+ Top, Bottom, Left, Right
+
+
+ True
+
+
+ NoControl
+
+
+ 3, 3
+
+
+ No
+
+
+ 78, 23
+
+
+ 0
+
+
+ &Add
+
+
+ addButton
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ addRemoveTableLayoutPanel
+
+
+ 0
+
+
+ Top, Bottom, Left, Right
+
+
+ True
+
+
+ NoControl
+
+
+ 108, 3
+
+
+ No
+
+
+ 78, 23
+
+
+ 2
+
+
+ &Remove
+
+
+ removeButton
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ addRemoveTableLayoutPanel
+
+
+ 1
+
+
+ 3, 243
+
+
+ 1
+
+
+ 189, 29
+
+
+ 2
+
+
+ addRemoveTableLayoutPanel
+
+
+ System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ overArchingTableLayoutPanel
+
+
+ 1
+
+
+ <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="addButton" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="removeButton" Row="0" RowSpan="1" Column="2" ColumnSpan="1" /></Controls><Columns Styles="Percent,50,AutoSize,0,Percent,50" /><Rows Styles="Percent,50" /></TableLayoutSettings>
+
+
+ Bottom, Left, Right
+
+
+ NoControl
+
+
+ 248, 0
+
+
+ No
+
+
+ 216, 14
+
+
+ 5
+
+
+ &Properties:
+
+
+ propertiesLabel
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ overArchingTableLayoutPanel
+
+
+ 2
+
+
+ Top, Bottom, Left, Right
+
+
+ False
+
+
+ 248, 17
+
+
+ 209, 223
+
+
+ 6
+
+
+ propertyBrowser
+
+
+ WindowsApplication2.VsPropertyGrid, WindowsApplication2, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ overArchingTableLayoutPanel
+
+
+ 5
+
+
+ Right
+
+
+ True
+
+
+ 2
+
+
+ Left, Right
+
+
+ True
+
+
+ NoControl
+
+
+ 3, 3
+
+
+ No
+
+
+ 75, 23
+
+
+ 0
+
+
+ OK
+
+
+ okButton
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ okCancelTableLayoutPanel
+
+
+ 0
+
+
+ Left, Right
+
+
+ True
+
+
+ NoControl
+
+
+ 97, 3
+
+
+ No
+
+
+ 75, 23
+
+
+ 1
+
+
+ Cancel
+
+
+ cancelButton
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ okCancelTableLayoutPanel
+
+
+ 1
+
+
+ 302, 278
+
+
+ 1
+
+
+ 162, 29
+
+
+ 7
+
+
+ okCancelTableLayoutPanel
+
+
+ System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ overArchingTableLayoutPanel
+
+
+ 6
+
+
+ <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="okButton" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="cancelButton" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /></Controls><Columns Styles="Percent,50,Percent,50" /><Rows Styles="Percent,50" /></TableLayoutSettings>
+
+
+ Move Up
+
+
+ Bottom, Left
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAEdJREFUOE9jYBj0
+ 4MCBA//JdiRU83+yDIFpBtoOcgFphqBrJskQXJqJMoSQZqIMgYU4RWEAMmQYGADzBsgrZCUkspMv3TUC
+ AGYzbEaI9u+YAAAAAElFTkSuQmCC
+
+
+
+ NoControl
+
+
+ 198, 17
+
+
+ 3, 3, 18, 3
+
+
+ No
+
+
+ 24, 24
+
+
+ 3
+
+
+ upButton
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ overArchingTableLayoutPanel
+
+
+ 7
+
+
+ 12, 12
+
+
+ 5
+
+
+ 467, 310
+
+
+ 0
+
+
+ overArchingTableLayoutPanel
+
+
+ System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 0
+
+
+ <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="downButton" Row="2" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="addRemoveTableLayoutPanel" Row="3" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="propertiesLabel" Row="0" RowSpan="1" Column="2" ColumnSpan="1" /><Control Name="membersLabel" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="listbox" Row="1" RowSpan="2" Column="0" ColumnSpan="1" /><Control Name="propertyBrowser" Row="1" RowSpan="3" Column="2" ColumnSpan="1" /><Control Name="okCancelTableLayoutPanel" Row="4" RowSpan="1" Column="0" ColumnSpan="3" /><Control Name="upButton" Row="1" RowSpan="1" Column="1" ColumnSpan="1" /></Controls><Columns Styles="AutoSize,0,AutoSize,0,Percent,100,Absolute,20" /><Rows Styles="AutoSize,0,AutoSize,0,Percent,100,AutoSize,0,AutoSize,0" /></TableLayoutSettings>
+
+
+ 186, 212
+
+
+ 1
+
+
+ listbox
+
+
+ WindowsApplication2.FilterListBox, WindowsApplication2, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+
+
+ overArchingTableLayoutPanel
+
+
+ 4
+
+
+ True
+
+
+ 6, 13
+
+
+ 491, 334
+
+
+ 480, 330
+
+
+ No
+
+
+ CenterScreen
+
+
+ {0} Collection Editor
+
+
+ CollectionEditor
+
+
+ System.Windows.Forms.Form, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/src/System.Windows.Forms.Design.Editors/src/Resources/SR.resx b/src/System.Windows.Forms.Design.Editors/src/Resources/SR.resx
index d71f65e236e..3b7a74664c5 100644
--- a/src/System.Windows.Forms.Design.Editors/src/Resources/SR.resx
+++ b/src/System.Windows.Forms.Design.Editors/src/Resources/SR.resx
@@ -127,4 +127,28 @@
(Unknown)
+
+ The item '{0}' cannot be removed.
+
+
+ {0} Collection Editor
+
+
+ Read-only component(s) selected.
+
+
+ {0} &properties:
+
+
+ Multi-Select &Properties:
+
+
+ &Properties:
+
+
+ Add or remove {0} objects
+
+
+ RTL_False
+
\ No newline at end of file
diff --git a/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/CollectionEditor.cs.xlf b/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/CollectionEditor.cs.xlf
new file mode 100644
index 00000000000..ec1b4df94c4
--- /dev/null
+++ b/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/CollectionEditor.cs.xlf
@@ -0,0 +1,52 @@
+
+
+
+
+
+ {0} Collection Editor
+ {0} Collection Editor
+
+
+
+ &Add
+ &Add
+
+
+
+ Cancel
+ Cancel
+
+
+
+ Move Down
+ Move Down
+
+
+
+ &Members:
+ &Members:
+
+
+
+ OK
+ OK
+
+
+
+ &Properties:
+ &Properties:
+
+
+
+ &Remove
+ &Remove
+
+
+
+ Move Up
+ Move Up
+
+
+
+
+
\ No newline at end of file
diff --git a/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/CollectionEditor.de.xlf b/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/CollectionEditor.de.xlf
new file mode 100644
index 00000000000..efb4fbcaeb9
--- /dev/null
+++ b/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/CollectionEditor.de.xlf
@@ -0,0 +1,52 @@
+
+
+
+
+
+ {0} Collection Editor
+ {0} Collection Editor
+
+
+
+ &Add
+ &Add
+
+
+
+ Cancel
+ Cancel
+
+
+
+ Move Down
+ Move Down
+
+
+
+ &Members:
+ &Members:
+
+
+
+ OK
+ OK
+
+
+
+ &Properties:
+ &Properties:
+
+
+
+ &Remove
+ &Remove
+
+
+
+ Move Up
+ Move Up
+
+
+
+
+
\ No newline at end of file
diff --git a/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/CollectionEditor.es.xlf b/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/CollectionEditor.es.xlf
new file mode 100644
index 00000000000..47656971a71
--- /dev/null
+++ b/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/CollectionEditor.es.xlf
@@ -0,0 +1,52 @@
+
+
+
+
+
+ {0} Collection Editor
+ {0} Collection Editor
+
+
+
+ &Add
+ &Add
+
+
+
+ Cancel
+ Cancel
+
+
+
+ Move Down
+ Move Down
+
+
+
+ &Members:
+ &Members:
+
+
+
+ OK
+ OK
+
+
+
+ &Properties:
+ &Properties:
+
+
+
+ &Remove
+ &Remove
+
+
+
+ Move Up
+ Move Up
+
+
+
+
+
\ No newline at end of file
diff --git a/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/CollectionEditor.fr.xlf b/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/CollectionEditor.fr.xlf
new file mode 100644
index 00000000000..bee64aca350
--- /dev/null
+++ b/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/CollectionEditor.fr.xlf
@@ -0,0 +1,52 @@
+
+
+
+
+
+ {0} Collection Editor
+ {0} Collection Editor
+
+
+
+ &Add
+ &Add
+
+
+
+ Cancel
+ Cancel
+
+
+
+ Move Down
+ Move Down
+
+
+
+ &Members:
+ &Members:
+
+
+
+ OK
+ OK
+
+
+
+ &Properties:
+ &Properties:
+
+
+
+ &Remove
+ &Remove
+
+
+
+ Move Up
+ Move Up
+
+
+
+
+
\ No newline at end of file
diff --git a/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/CollectionEditor.it.xlf b/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/CollectionEditor.it.xlf
new file mode 100644
index 00000000000..e8fec5bb771
--- /dev/null
+++ b/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/CollectionEditor.it.xlf
@@ -0,0 +1,52 @@
+
+
+
+
+
+ {0} Collection Editor
+ {0} Collection Editor
+
+
+
+ &Add
+ &Add
+
+
+
+ Cancel
+ Cancel
+
+
+
+ Move Down
+ Move Down
+
+
+
+ &Members:
+ &Members:
+
+
+
+ OK
+ OK
+
+
+
+ &Properties:
+ &Properties:
+
+
+
+ &Remove
+ &Remove
+
+
+
+ Move Up
+ Move Up
+
+
+
+
+
\ No newline at end of file
diff --git a/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/CollectionEditor.ja.xlf b/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/CollectionEditor.ja.xlf
new file mode 100644
index 00000000000..02cf37daae8
--- /dev/null
+++ b/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/CollectionEditor.ja.xlf
@@ -0,0 +1,52 @@
+
+
+
+
+
+ {0} Collection Editor
+ {0} Collection Editor
+
+
+
+ &Add
+ &Add
+
+
+
+ Cancel
+ Cancel
+
+
+
+ Move Down
+ Move Down
+
+
+
+ &Members:
+ &Members:
+
+
+
+ OK
+ OK
+
+
+
+ &Properties:
+ &Properties:
+
+
+
+ &Remove
+ &Remove
+
+
+
+ Move Up
+ Move Up
+
+
+
+
+
\ No newline at end of file
diff --git a/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/CollectionEditor.ko.xlf b/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/CollectionEditor.ko.xlf
new file mode 100644
index 00000000000..78cd92e0f4a
--- /dev/null
+++ b/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/CollectionEditor.ko.xlf
@@ -0,0 +1,52 @@
+
+
+
+
+
+ {0} Collection Editor
+ {0} Collection Editor
+
+
+
+ &Add
+ &Add
+
+
+
+ Cancel
+ Cancel
+
+
+
+ Move Down
+ Move Down
+
+
+
+ &Members:
+ &Members:
+
+
+
+ OK
+ OK
+
+
+
+ &Properties:
+ &Properties:
+
+
+
+ &Remove
+ &Remove
+
+
+
+ Move Up
+ Move Up
+
+
+
+
+
\ No newline at end of file
diff --git a/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/CollectionEditor.pl.xlf b/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/CollectionEditor.pl.xlf
new file mode 100644
index 00000000000..024d1af2080
--- /dev/null
+++ b/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/CollectionEditor.pl.xlf
@@ -0,0 +1,52 @@
+
+
+
+
+
+ {0} Collection Editor
+ {0} Collection Editor
+
+
+
+ &Add
+ &Add
+
+
+
+ Cancel
+ Cancel
+
+
+
+ Move Down
+ Move Down
+
+
+
+ &Members:
+ &Members:
+
+
+
+ OK
+ OK
+
+
+
+ &Properties:
+ &Properties:
+
+
+
+ &Remove
+ &Remove
+
+
+
+ Move Up
+ Move Up
+
+
+
+
+
\ No newline at end of file
diff --git a/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/CollectionEditor.pt-BR.xlf b/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/CollectionEditor.pt-BR.xlf
new file mode 100644
index 00000000000..633a553271d
--- /dev/null
+++ b/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/CollectionEditor.pt-BR.xlf
@@ -0,0 +1,52 @@
+
+
+
+
+
+ {0} Collection Editor
+ {0} Collection Editor
+
+
+
+ &Add
+ &Add
+
+
+
+ Cancel
+ Cancel
+
+
+
+ Move Down
+ Move Down
+
+
+
+ &Members:
+ &Members:
+
+
+
+ OK
+ OK
+
+
+
+ &Properties:
+ &Properties:
+
+
+
+ &Remove
+ &Remove
+
+
+
+ Move Up
+ Move Up
+
+
+
+
+
\ No newline at end of file
diff --git a/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/CollectionEditor.ru.xlf b/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/CollectionEditor.ru.xlf
new file mode 100644
index 00000000000..57e11f61e66
--- /dev/null
+++ b/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/CollectionEditor.ru.xlf
@@ -0,0 +1,52 @@
+
+
+
+
+
+ {0} Collection Editor
+ {0} Collection Editor
+
+
+
+ &Add
+ &Add
+
+
+
+ Cancel
+ Cancel
+
+
+
+ Move Down
+ Move Down
+
+
+
+ &Members:
+ &Members:
+
+
+
+ OK
+ OK
+
+
+
+ &Properties:
+ &Properties:
+
+
+
+ &Remove
+ &Remove
+
+
+
+ Move Up
+ Move Up
+
+
+
+
+
\ No newline at end of file
diff --git a/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/CollectionEditor.tr.xlf b/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/CollectionEditor.tr.xlf
new file mode 100644
index 00000000000..d5458b8f481
--- /dev/null
+++ b/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/CollectionEditor.tr.xlf
@@ -0,0 +1,52 @@
+
+
+
+
+
+ {0} Collection Editor
+ {0} Collection Editor
+
+
+
+ &Add
+ &Add
+
+
+
+ Cancel
+ Cancel
+
+
+
+ Move Down
+ Move Down
+
+
+
+ &Members:
+ &Members:
+
+
+
+ OK
+ OK
+
+
+
+ &Properties:
+ &Properties:
+
+
+
+ &Remove
+ &Remove
+
+
+
+ Move Up
+ Move Up
+
+
+
+
+
\ No newline at end of file
diff --git a/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/CollectionEditor.zh-Hans.xlf b/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/CollectionEditor.zh-Hans.xlf
new file mode 100644
index 00000000000..5f219a55c69
--- /dev/null
+++ b/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/CollectionEditor.zh-Hans.xlf
@@ -0,0 +1,52 @@
+
+
+
+
+
+ {0} Collection Editor
+ {0} Collection Editor
+
+
+
+ &Add
+ &Add
+
+
+
+ Cancel
+ Cancel
+
+
+
+ Move Down
+ Move Down
+
+
+
+ &Members:
+ &Members:
+
+
+
+ OK
+ OK
+
+
+
+ &Properties:
+ &Properties:
+
+
+
+ &Remove
+ &Remove
+
+
+
+ Move Up
+ Move Up
+
+
+
+
+
\ No newline at end of file
diff --git a/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/CollectionEditor.zh-Hant.xlf b/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/CollectionEditor.zh-Hant.xlf
new file mode 100644
index 00000000000..db72b6fa279
--- /dev/null
+++ b/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/CollectionEditor.zh-Hant.xlf
@@ -0,0 +1,52 @@
+
+
+
+
+
+ {0} Collection Editor
+ {0} Collection Editor
+
+
+
+ &Add
+ &Add
+
+
+
+ Cancel
+ Cancel
+
+
+
+ Move Down
+ Move Down
+
+
+
+ &Members:
+ &Members:
+
+
+
+ OK
+ OK
+
+
+
+ &Properties:
+ &Properties:
+
+
+
+ &Remove
+ &Remove
+
+
+
+ Move Up
+ Move Up
+
+
+
+
+
\ No newline at end of file
diff --git a/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/SR.cs.xlf b/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/SR.cs.xlf
index dc59aec5101..da0a7b75690 100644
--- a/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/SR.cs.xlf
+++ b/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/SR.cs.xlf
@@ -27,6 +27,41 @@
Top
+
+ The item '{0}' cannot be removed.
+ The item '{0}' cannot be removed.
+
+
+
+ {0} Collection Editor
+ {0} Collection Editor
+
+
+
+ Read-only component(s) selected.
+ Read-only component(s) selected.
+
+
+
+ {0} &properties:
+ {0} &properties:
+
+
+
+ Multi-Select &Properties:
+ Multi-Select &Properties:
+
+
+
+ &Properties:
+ &Properties:
+
+
+
+ Add or remove {0} objects
+ Add or remove {0} objects
+
+
Color Picker
Volba barev
@@ -97,6 +132,11 @@
Winforms Designer není na této platformě podporován.
+
+ RTL_False
+ RTL_False
+
+
(Unknown)
(Neznámý)
diff --git a/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/SR.de.xlf b/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/SR.de.xlf
index c9882cba10c..95ed6594146 100644
--- a/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/SR.de.xlf
+++ b/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/SR.de.xlf
@@ -27,6 +27,41 @@
Oben
+
+ The item '{0}' cannot be removed.
+ The item '{0}' cannot be removed.
+
+
+
+ {0} Collection Editor
+ {0} Collection Editor
+
+
+
+ Read-only component(s) selected.
+ Read-only component(s) selected.
+
+
+
+ {0} &properties:
+ {0} &properties:
+
+
+
+ Multi-Select &Properties:
+ Multi-Select &Properties:
+
+
+
+ &Properties:
+ &Properties:
+
+
+
+ Add or remove {0} objects
+ Add or remove {0} objects
+
+
Color Picker
Farbauswahl
@@ -97,6 +132,11 @@
Der Windows Forms-Designer wird auf dieser Plattform nicht unterstützt.
+
+ RTL_False
+ RTL_False
+
+
(Unknown)
(Unbekannt)
diff --git a/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/SR.es.xlf b/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/SR.es.xlf
index c23932f165d..af0491c66b9 100644
--- a/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/SR.es.xlf
+++ b/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/SR.es.xlf
@@ -27,6 +27,41 @@
Parte superior
+
+ The item '{0}' cannot be removed.
+ The item '{0}' cannot be removed.
+
+
+
+ {0} Collection Editor
+ {0} Collection Editor
+
+
+
+ Read-only component(s) selected.
+ Read-only component(s) selected.
+
+
+
+ {0} &properties:
+ {0} &properties:
+
+
+
+ Multi-Select &Properties:
+ Multi-Select &Properties:
+
+
+
+ &Properties:
+ &Properties:
+
+
+
+ Add or remove {0} objects
+ Add or remove {0} objects
+
+
Color Picker
Selector de color
@@ -97,6 +132,11 @@
Winforms Designer no se admite en esta plataforma.
+
+ RTL_False
+ RTL_False
+
+
(Unknown)
(Se desconoce)
diff --git a/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/SR.fr.xlf b/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/SR.fr.xlf
index 80db2ee9e6e..34bca2012c6 100644
--- a/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/SR.fr.xlf
+++ b/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/SR.fr.xlf
@@ -27,6 +27,41 @@
Haut
+
+ The item '{0}' cannot be removed.
+ The item '{0}' cannot be removed.
+
+
+
+ {0} Collection Editor
+ {0} Collection Editor
+
+
+
+ Read-only component(s) selected.
+ Read-only component(s) selected.
+
+
+
+ {0} &properties:
+ {0} &properties:
+
+
+
+ Multi-Select &Properties:
+ Multi-Select &Properties:
+
+
+
+ &Properties:
+ &Properties:
+
+
+
+ Add or remove {0} objects
+ Add or remove {0} objects
+
+
Color Picker
Sélecteur de couleurs
@@ -97,6 +132,11 @@
Le concepteur WinForms n'est pas pris en charge sur cette plateforme.
+
+ RTL_False
+ RTL_False
+
+
(Unknown)
(Inconnu)
diff --git a/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/SR.it.xlf b/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/SR.it.xlf
index 1b958a4178a..d8b55db54b4 100644
--- a/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/SR.it.xlf
+++ b/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/SR.it.xlf
@@ -27,6 +27,41 @@
Alto
+
+ The item '{0}' cannot be removed.
+ The item '{0}' cannot be removed.
+
+
+
+ {0} Collection Editor
+ {0} Collection Editor
+
+
+
+ Read-only component(s) selected.
+ Read-only component(s) selected.
+
+
+
+ {0} &properties:
+ {0} &properties:
+
+
+
+ Multi-Select &Properties:
+ Multi-Select &Properties:
+
+
+
+ &Properties:
+ &Properties:
+
+
+
+ Add or remove {0} objects
+ Add or remove {0} objects
+
+
Color Picker
Selezione colori
@@ -97,6 +132,11 @@
Winforms Designer non è supportato in questa piattaforma.
+
+ RTL_False
+ RTL_False
+
+
(Unknown)
(Sconosciuto)
diff --git a/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/SR.ja.xlf b/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/SR.ja.xlf
index 2012b7d6dc9..66fd1669845 100644
--- a/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/SR.ja.xlf
+++ b/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/SR.ja.xlf
@@ -27,6 +27,41 @@
上
+
+ The item '{0}' cannot be removed.
+ The item '{0}' cannot be removed.
+
+
+
+ {0} Collection Editor
+ {0} Collection Editor
+
+
+
+ Read-only component(s) selected.
+ Read-only component(s) selected.
+
+
+
+ {0} &properties:
+ {0} &properties:
+
+
+
+ Multi-Select &Properties:
+ Multi-Select &Properties:
+
+
+
+ &Properties:
+ &Properties:
+
+
+
+ Add or remove {0} objects
+ Add or remove {0} objects
+
+
Color Picker
カラー ピッカー
@@ -97,6 +132,11 @@
Windows フォーム デザイナーは、このプラットフォームではサポートされていません。
+
+ RTL_False
+ RTL_False
+
+
(Unknown)
(不明)
diff --git a/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/SR.ko.xlf b/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/SR.ko.xlf
index 5f90114df43..4f73c3eae86 100644
--- a/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/SR.ko.xlf
+++ b/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/SR.ko.xlf
@@ -27,6 +27,41 @@
Top
+
+ The item '{0}' cannot be removed.
+ The item '{0}' cannot be removed.
+
+
+
+ {0} Collection Editor
+ {0} Collection Editor
+
+
+
+ Read-only component(s) selected.
+ Read-only component(s) selected.
+
+
+
+ {0} &properties:
+ {0} &properties:
+
+
+
+ Multi-Select &Properties:
+ Multi-Select &Properties:
+
+
+
+ &Properties:
+ &Properties:
+
+
+
+ Add or remove {0} objects
+ Add or remove {0} objects
+
+
Color Picker
색 선택
@@ -97,6 +132,11 @@
Winforms 디자이너는 이 플랫폼에서 지원되지 않습니다.
+
+ RTL_False
+ RTL_False
+
+
(Unknown)
(알 수 없음)
diff --git a/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/SR.pl.xlf b/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/SR.pl.xlf
index d3105e53d5f..af28a3111e0 100644
--- a/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/SR.pl.xlf
+++ b/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/SR.pl.xlf
@@ -27,6 +27,41 @@
Góra
+
+ The item '{0}' cannot be removed.
+ The item '{0}' cannot be removed.
+
+
+
+ {0} Collection Editor
+ {0} Collection Editor
+
+
+
+ Read-only component(s) selected.
+ Read-only component(s) selected.
+
+
+
+ {0} &properties:
+ {0} &properties:
+
+
+
+ Multi-Select &Properties:
+ Multi-Select &Properties:
+
+
+
+ &Properties:
+ &Properties:
+
+
+
+ Add or remove {0} objects
+ Add or remove {0} objects
+
+
Color Picker
Selektor kolorów
@@ -97,6 +132,11 @@
Projektant formularzy systemu Windows nie jest obsługiwany na tej platformie.
+
+ RTL_False
+ RTL_False
+
+
(Unknown)
(Nieznany)
diff --git a/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/SR.pt-BR.xlf b/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/SR.pt-BR.xlf
index 480e26b7d7d..81ebc562226 100644
--- a/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/SR.pt-BR.xlf
+++ b/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/SR.pt-BR.xlf
@@ -27,6 +27,41 @@
Top
+
+ The item '{0}' cannot be removed.
+ The item '{0}' cannot be removed.
+
+
+
+ {0} Collection Editor
+ {0} Collection Editor
+
+
+
+ Read-only component(s) selected.
+ Read-only component(s) selected.
+
+
+
+ {0} &properties:
+ {0} &properties:
+
+
+
+ Multi-Select &Properties:
+ Multi-Select &Properties:
+
+
+
+ &Properties:
+ &Properties:
+
+
+
+ Add or remove {0} objects
+ Add or remove {0} objects
+
+
Color Picker
Selecionador de Cores
@@ -97,6 +132,11 @@
O Designer de Formulários do Windows não é compatível com esta plataforma.
+
+ RTL_False
+ RTL_False
+
+
(Unknown)
(Desconhecido)
diff --git a/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/SR.ru.xlf b/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/SR.ru.xlf
index 3edd617a420..1397f7b851b 100644
--- a/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/SR.ru.xlf
+++ b/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/SR.ru.xlf
@@ -27,6 +27,41 @@
По верхнему краю
+
+ The item '{0}' cannot be removed.
+ The item '{0}' cannot be removed.
+
+
+
+ {0} Collection Editor
+ {0} Collection Editor
+
+
+
+ Read-only component(s) selected.
+ Read-only component(s) selected.
+
+
+
+ {0} &properties:
+ {0} &properties:
+
+
+
+ Multi-Select &Properties:
+ Multi-Select &Properties:
+
+
+
+ &Properties:
+ &Properties:
+
+
+
+ Add or remove {0} objects
+ Add or remove {0} objects
+
+
Color Picker
Палитра цветов
@@ -97,6 +132,11 @@
Конструктор Windows Forms не поддерживается на этой платформе.
+
+ RTL_False
+ RTL_False
+
+
(Unknown)
(Неизвестный)
diff --git a/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/SR.tr.xlf b/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/SR.tr.xlf
index 9ba014178cd..1e19d22dc44 100644
--- a/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/SR.tr.xlf
+++ b/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/SR.tr.xlf
@@ -27,6 +27,41 @@
Üst
+
+ The item '{0}' cannot be removed.
+ The item '{0}' cannot be removed.
+
+
+
+ {0} Collection Editor
+ {0} Collection Editor
+
+
+
+ Read-only component(s) selected.
+ Read-only component(s) selected.
+
+
+
+ {0} &properties:
+ {0} &properties:
+
+
+
+ Multi-Select &Properties:
+ Multi-Select &Properties:
+
+
+
+ &Properties:
+ &Properties:
+
+
+
+ Add or remove {0} objects
+ Add or remove {0} objects
+
+
Color Picker
Renk Seçici
@@ -97,6 +132,11 @@
Winforms Tasarımcısı bu platformda desteklenmiyor.
+
+ RTL_False
+ RTL_False
+
+
(Unknown)
(Bilinmiyor)
diff --git a/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/SR.zh-Hans.xlf b/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/SR.zh-Hans.xlf
index 4f9c91e9576..dc9bf86c6d6 100644
--- a/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/SR.zh-Hans.xlf
+++ b/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/SR.zh-Hans.xlf
@@ -27,6 +27,41 @@
顶部
+
+ The item '{0}' cannot be removed.
+ The item '{0}' cannot be removed.
+
+
+
+ {0} Collection Editor
+ {0} Collection Editor
+
+
+
+ Read-only component(s) selected.
+ Read-only component(s) selected.
+
+
+
+ {0} &properties:
+ {0} &properties:
+
+
+
+ Multi-Select &Properties:
+ Multi-Select &Properties:
+
+
+
+ &Properties:
+ &Properties:
+
+
+
+ Add or remove {0} objects
+ Add or remove {0} objects
+
+
Color Picker
颜色选取器
@@ -97,6 +132,11 @@
此平台上不支持 Winforms Designer。
+
+ RTL_False
+ RTL_False
+
+
(Unknown)
(未知)
diff --git a/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/SR.zh-Hant.xlf b/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/SR.zh-Hant.xlf
index 5361d55cea3..812c4ac988d 100644
--- a/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/SR.zh-Hant.xlf
+++ b/src/System.Windows.Forms.Design.Editors/src/Resources/xlf/SR.zh-Hant.xlf
@@ -27,6 +27,41 @@
上
+
+ The item '{0}' cannot be removed.
+ The item '{0}' cannot be removed.
+
+
+
+ {0} Collection Editor
+ {0} Collection Editor
+
+
+
+ Read-only component(s) selected.
+ Read-only component(s) selected.
+
+
+
+ {0} &properties:
+ {0} &properties:
+
+
+
+ Multi-Select &Properties:
+ Multi-Select &Properties:
+
+
+
+ &Properties:
+ &Properties:
+
+
+
+ Add or remove {0} objects
+ Add or remove {0} objects
+
+
Color Picker
色彩選擇器
@@ -97,6 +132,11 @@
此平台不支援 WinForms Designer。
+
+ RTL_False
+ RTL_False
+
+
(Unknown)
(未知)
diff --git a/src/System.Windows.Forms.Design.Editors/src/System.Windows.Forms.Design.Editors.csproj b/src/System.Windows.Forms.Design.Editors/src/System.Windows.Forms.Design.Editors.csproj
index 11aacc58769..df9698dc3e3 100644
--- a/src/System.Windows.Forms.Design.Editors/src/System.Windows.Forms.Design.Editors.csproj
+++ b/src/System.Windows.Forms.Design.Editors/src/System.Windows.Forms.Design.Editors.csproj
@@ -9,7 +9,12 @@
true
- System.Windows.Forms.Design.Editors.Resources
+ System
+
+
+
+
+ System.ComponentModel.Design
@@ -19,6 +24,9 @@
+
+
+
diff --git a/src/System.Windows.Forms.Design.Editors/src/System/ComponentModel/Design/CollectionEditor.cs b/src/System.Windows.Forms.Design.Editors/src/System/ComponentModel/Design/CollectionEditor.cs
new file mode 100644
index 00000000000..864edb62326
--- /dev/null
+++ b/src/System.Windows.Forms.Design.Editors/src/System/ComponentModel/Design/CollectionEditor.cs
@@ -0,0 +1,2668 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+using System;
+using System.Collections;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Diagnostics.CodeAnalysis;
+using System.Drawing;
+using System.Drawing.Design;
+using System.Globalization;
+using System.Reflection;
+using System.Runtime.InteropServices;
+using System.Windows.Forms;
+using System.Windows.Forms.Design;
+using System.Windows.Forms.VisualStyles;
+
+namespace System.ComponentModel.Design
+{
+ ///
+ /// Provides a generic editor for most any collection.
+ ///
+ public class CollectionEditor : UITypeEditor
+ {
+ private readonly Type _type;
+ private Type _collectionItemType;
+ private Type[] _newItemTypes;
+ private ITypeDescriptorContext _currentContext;
+
+ private bool _ignoreChangedEvents;
+ private bool _ignoreChangingEvents;
+
+ ///
+ /// Useful for derived classes to do processing when cancelling changes
+ ///
+ protected virtual void CancelChanges()
+ {
+ }
+
+ ///
+ /// Initializes a new instance of the class using the specified collection type.
+ ///
+ public CollectionEditor(Type type)
+ {
+ _type = type;
+ }
+
+ ///
+ /// Gets or sets the data type of each item in the collection.
+ ///
+ protected Type CollectionItemType
+ {
+ get
+ {
+ if (_collectionItemType == null)
+ {
+ _collectionItemType = CreateCollectionItemType();
+ }
+ return _collectionItemType;
+ }
+ }
+
+ ///
+ /// Gets or sets the type of the collection.
+ ///
+ protected Type CollectionType
+ {
+ get
+ {
+ return _type;
+ }
+ }
+
+ ///
+ /// Gets or sets a type descriptor that indicates the current context.
+ ///
+ protected ITypeDescriptorContext Context
+ {
+ get
+ {
+ return _currentContext;
+ }
+ }
+
+ ///
+ /// Gets or sets the available item types that can be created for this collection.
+ ///
+ protected Type[] NewItemTypes
+ {
+ get
+ {
+ if (_newItemTypes == null)
+ {
+ _newItemTypes = CreateNewItemTypes();
+ }
+ return _newItemTypes;
+ }
+ }
+
+ ///
+ /// Gets the help topic to display for the dialog help button or pressing F1. Override to display a different help topic.
+ ///
+ protected virtual string HelpTopic
+ {
+ get
+ {
+ return "net.ComponentModel.CollectionEditor";
+ }
+ }
+
+ ///
+ /// Gets or sets a value indicating whether original members of the collection can be removed.
+ ///
+ protected virtual bool CanRemoveInstance(object value)
+ {
+ if (value is IComponent comp)
+ {
+ // Make sure the component is not being inherited -- we can't delete these!
+ InheritanceAttribute ia = (InheritanceAttribute)TypeDescriptor.GetAttributes(comp)[typeof(InheritanceAttribute)];
+ if (ia != null && ia.InheritanceLevel != InheritanceLevel.NotInherited)
+ {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+ ///
+ /// Gets or sets a value indicating whether multiple collection members can be selected.
+ ///
+ protected virtual bool CanSelectMultipleInstances()
+ {
+ return true;
+ }
+
+ ///
+ /// Creates a new form to show the current collection.
+ ///
+ protected virtual CollectionForm CreateCollectionForm()
+ {
+ return new CollectionEditorCollectionForm(this);
+ }
+
+ ///
+ /// Creates a new instance of the specified collection item type.
+ ///
+ protected virtual object CreateInstance(Type itemType)
+ {
+ return CollectionEditor.CreateInstance(itemType, (IDesignerHost)GetService(typeof(IDesignerHost)), null);
+ }
+
+ ///
+ /// This Function gets the object from the givem object. The input is an arrayList returned as an Object.
+ /// The output is a arraylist which contains the individual objects that need to be created.
+ ///
+ protected virtual IList GetObjectsFromInstance(object instance)
+ {
+ ArrayList ret = new ArrayList
+ {
+ instance
+ };
+ return ret;
+ }
+
+ internal static object CreateInstance(Type itemType, IDesignerHost host, string name)
+ {
+ object instance = null;
+
+ if (typeof(IComponent).IsAssignableFrom(itemType))
+ {
+ if (host != null)
+ {
+ instance = host.CreateComponent(itemType, (string)name);
+
+ // Set component defaults
+ if (host != null)
+ {
+ if (host.GetDesigner((IComponent)instance) is IComponentInitializer init)
+ {
+ init.InitializeNewComponent(null);
+ }
+ }
+ }
+ }
+
+ if (instance == null)
+ {
+ instance = TypeDescriptor.CreateInstance(host, itemType, null, null);
+ }
+
+ return instance;
+ }
+
+
+ ///
+ /// Retrieves the display text for the given list item.
+ ///
+ protected virtual string GetDisplayText(object value)
+ {
+ string text;
+
+ if (value == null)
+ {
+ return string.Empty;
+ }
+
+ PropertyDescriptor prop = TypeDescriptor.GetProperties(value)["Name"];
+ if (prop != null && prop.PropertyType == typeof(string))
+ {
+ text = (string)prop.GetValue(value);
+ if (text != null && text.Length > 0)
+ {
+ return text;
+ }
+ }
+
+ prop = TypeDescriptor.GetDefaultProperty(CollectionType);
+ if (prop != null && prop.PropertyType == typeof(string))
+ {
+ text = (string)prop.GetValue(value);
+ if (text != null && text.Length > 0)
+ {
+ return text;
+ }
+ }
+
+ text = TypeDescriptor.GetConverter(value).ConvertToString(value);
+
+ if (text == null || text.Length == 0)
+ {
+ text = value.GetType().Name;
+ }
+
+ return text;
+ }
+
+ ///
+ /// Gets an instance of the data type this collection contains.
+ ///
+ protected virtual Type CreateCollectionItemType()
+ {
+ PropertyInfo[] props = TypeDescriptor.GetReflectionType(CollectionType).GetProperties(BindingFlags.Public | BindingFlags.Instance);
+
+ for (int i = 0; i < props.Length; i++)
+ {
+ if (props[i].Name.Equals("Item") || props[i].Name.Equals("Items"))
+ {
+ return props[i].PropertyType;
+ }
+ }
+
+ Debug.Fail("Collection " + CollectionType.FullName + " contains no Item or Items property so we cannot display and edit any values");
+ return typeof(object);
+ }
+
+ ///
+ /// Gets the data types this collection editor can create.
+ ///
+ protected virtual Type[] CreateNewItemTypes()
+ {
+ return new Type[] { CollectionItemType };
+ }
+
+ ///
+ /// Destroys the specified instance of the object.
+ ///
+ protected virtual void DestroyInstance(object instance)
+ {
+ if (instance is IComponent compInstance)
+ {
+ IDesignerHost host = (IDesignerHost)GetService(typeof(IDesignerHost));
+ if (host != null)
+ {
+ host.DestroyComponent(compInstance);
+ }
+ else
+ {
+ compInstance.Dispose();
+ }
+ }
+ else
+ {
+ if (instance is IDisposable dispInstance)
+ {
+ dispInstance.Dispose();
+ }
+ }
+ }
+
+ ///
+ /// Edits the specified object value using the editor style provided by .
+ ///
+ [SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase")]
+ public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
+ {
+ if (provider != null)
+ {
+ IWindowsFormsEditorService edSvc = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
+ if (edSvc != null)
+ {
+ _currentContext = context;
+
+ // child modal dialog -launching in System Aware mode
+ CollectionForm localCollectionForm = DpiHelper.CreateInstanceInSystemAwareContext(() => CreateCollectionForm());
+ ITypeDescriptorContext lastContext = _currentContext;
+ localCollectionForm.EditValue = value;
+ _ignoreChangingEvents = false;
+ _ignoreChangedEvents = false;
+ DesignerTransaction trans = null;
+
+ bool commitChange = true;
+ IComponentChangeService cs = null;
+ IDesignerHost host = (IDesignerHost)GetService(typeof(IDesignerHost));
+
+ try
+ {
+ try
+ {
+ if (host != null)
+ {
+ trans = host.CreateTransaction(string.Format(SR.CollectionEditorUndoBatchDesc, CollectionItemType.Name));
+ }
+ }
+ catch (CheckoutException cxe)
+ {
+ if (cxe == CheckoutException.Canceled)
+ return value;
+
+ throw cxe;
+ }
+
+ cs = host != null ? (IComponentChangeService)host.GetService(typeof(IComponentChangeService)) : null;
+
+ if (cs != null)
+ {
+ cs.ComponentChanged += new ComponentChangedEventHandler(OnComponentChanged);
+ cs.ComponentChanging += new ComponentChangingEventHandler(OnComponentChanging);
+ }
+
+ if (localCollectionForm.ShowEditorDialog(edSvc) == DialogResult.OK)
+ {
+ value = localCollectionForm.EditValue;
+ }
+ else
+ {
+ commitChange = false;
+ }
+ }
+ finally
+ {
+ localCollectionForm.EditValue = null;
+ _currentContext = lastContext;
+ if (trans != null)
+ {
+ if (commitChange)
+ {
+ trans.Commit();
+ }
+ else
+ {
+ trans.Cancel();
+ }
+ }
+
+ if (cs != null)
+ {
+ cs.ComponentChanged -= new ComponentChangedEventHandler(OnComponentChanged);
+ cs.ComponentChanging -= new ComponentChangingEventHandler(OnComponentChanging);
+ }
+
+ localCollectionForm.Dispose();
+ }
+ }
+ }
+ return value;
+ }
+
+ ///
+ /// Gets the editing style of the Edit method.
+ ///
+ [SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase")]
+ public override UITypeEditorEditStyle GetEditStyle(ITypeDescriptorContext context)
+ {
+ return UITypeEditorEditStyle.Modal;
+ }
+
+ private bool IsAnyObjectInheritedReadOnly(object[] items)
+ {
+ // If the object implements IComponent, and is not sited, check with the inheritance service (if it exists) to see if this is a component
+ // that is being inherited from another class.
+ // If it is, then we do not want to place it in the collection editor. If the inheritance service
+ // chose not to site the component, that indicates it should be hidden from the user.
+ IInheritanceService inheritanceService = null;
+ bool isInheritanceServiceInitialized = false;
+
+ foreach (object o in items)
+ {
+ if (o is IComponent comp && comp.Site == null)
+ {
+ if (!isInheritanceServiceInitialized)
+ {
+ isInheritanceServiceInitialized = true;
+ if (Context != null)
+ {
+ inheritanceService = (IInheritanceService)Context.GetService(typeof(IInheritanceService));
+ }
+ }
+
+ if (inheritanceService != null && inheritanceService.GetInheritanceAttribute(comp).Equals(InheritanceAttribute.InheritedReadOnly))
+ {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ ///
+ /// Converts the specified collection into an array of objects.
+ ///
+ protected virtual object[] GetItems(object editValue)
+ {
+ if (editValue != null)
+ {
+ // We look to see if the value implements ICollection, and if it does, we set through that.
+ if (editValue is Collections.ICollection)
+ {
+ ArrayList list = new ArrayList();
+
+ Collections.ICollection col = (Collections.ICollection)editValue;
+ foreach (object o in col)
+ {
+ list.Add(o);
+ }
+
+ object[] values = new object[list.Count];
+ list.CopyTo(values, 0);
+ return values;
+ }
+ }
+
+ return Array.Empty