2 using System.Windows.Forms;
4 namespace System.Windows.Forms.Design
6 // A IDataObject that supports Control and Control[] format
8 internal class ControlDataObject : IDataObject
10 private object _data = null;
11 private string _format = null;
13 public ControlDataObject ()
19 public ControlDataObject (Control control)
24 public ControlDataObject (Control[] controls)
29 public object GetData (Type format)
31 return this.GetData (format.ToString ());
34 public object GetData (string format)
36 return this.GetData (format, true);
39 public object GetData (string format, bool autoConvert)
41 if (format == _format) {
47 public bool GetDataPresent (Type format)
49 return this.GetDataPresent (format.ToString());
52 public bool GetDataPresent (string format)
54 return this.GetDataPresent (format, true);
57 public bool GetDataPresent (string format, bool autoConvert)
59 if (format == _format) {
65 public string[] GetFormats ()
67 return this.GetFormats (true);
70 public string[] GetFormats (bool autoConvert)
72 string[] formats = new string[2];
73 formats[0] = typeof (Control).ToString ();
74 formats[1] = typeof (Control[]).ToString ();
78 public void SetData (object data)
81 this.SetData (typeof (Control), data);
82 else if (data is Control[])
83 this.SetData (typeof (Control[]), data);
86 public void SetData (Type format, object data)
88 this.SetData (format.ToString (), data);
91 public void SetData (string format, object data)
93 this.SetData (format, true, data);
96 public void SetData (string format, bool autoConvert, object data)
98 if (ValidateFormat (format)) {
104 private bool ValidateFormat (string format)
108 string[] formats = GetFormats ();
109 foreach (string f in formats) {