浏览代码

2007-07-23 Jonathan Pobst <[email protected]>

	* LinkLabel.cs, PrintPreviewDialog.cs, TabPage.cs, TextBox.cs,
	TextBoxBase.cs, ToolBar.cs: 2.0 corcompare work.

svn path=/trunk/mcs/; revision=82525
Jonathan Pobst 18 年之前
父节点
当前提交
d1d1802026

+ 5 - 0
mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog

@@ -1,3 +1,8 @@
+2007-07-23  Jonathan Pobst  <[email protected]>
+
+	* LinkLabel.cs, PrintPreviewDialog.cs, TabPage.cs, TextBox.cs,
+	TextBoxBase.cs, ToolBar.cs: 2.0 corcompare work.
+
 2007-07-23  Rolf Bjarne Kvinge <[email protected]> 
 
 	* DataGridViewLinkColumn.cs, DataGridViewRowCollection.cs,

+ 67 - 0
mcs/class/Managed.Windows.Forms/System.Windows.Forms/LinkLabel.cs

@@ -88,6 +88,15 @@ namespace System.Windows.Forms
 			add { Events.AddHandler (LinkClickedEvent, value); }
 			remove { Events.RemoveHandler (LinkClickedEvent, value); }
 		}
+
+#if NET_2_0
+		[Browsable (true)]
+		[EditorBrowsable (EditorBrowsableState.Always)]
+		public new event EventHandler TabStopChanged {
+			add { base.TabStopChanged += value; }
+			remove { base.TabStopChanged -= value; }
+		}
+#endif
 		#endregion // Events
 
 		public LinkLabel ()
@@ -303,6 +312,13 @@ namespace System.Windows.Forms
 			CreateLinkPieces ();			
 		}
 
+#if NET_2_0
+		protected override void OnAutoSizeChanged (EventArgs e)
+		{
+			base.OnAutoSizeChanged (e);
+		}
+#endif
+
 		protected override void OnEnabledChanged (EventArgs e)
 		{
 			base.OnEnabledChanged (e);
@@ -398,6 +414,13 @@ namespace System.Windows.Forms
 			UpdateHover (null);
 		}
 
+#if NET_2_0
+		protected override void OnPaddingChanged (EventArgs e)
+		{
+			base.OnPaddingChanged (e);
+		}
+#endif
+
 		private void UpdateHover (Link link)
 		{
 			if (link == hovered_link)
@@ -747,6 +770,7 @@ namespace System.Windows.Forms
 				set { this.description = value; }
 			}
 			
+			[DefaultValue ("")]
 			public string Name {
 				get { return this.name; }
 				set { this.name = value; }
@@ -754,6 +778,8 @@ namespace System.Windows.Forms
 			
 			[Bindable (true)]
 			[Localizable (false)]
+			[DefaultValue (null)]
+			[TypeConverter (typeof (StringConverter))]
 			public Object Tag {
 				get { return this.tag; }
 				set { this.tag = value; }
@@ -919,6 +945,19 @@ namespace System.Windows.Forms
 			}
 
 #if NET_2_0
+			public virtual Link this[string key] {
+				get {
+					if (string.IsNullOrEmpty (key))
+						return null;
+						
+					foreach (Link l in collection)
+						if (string.Compare (l.Name, key, true) == 0)
+							return l;
+							
+					return null;
+				}
+			}
+			
 			public
 #else
 			internal
@@ -977,6 +1016,13 @@ namespace System.Windows.Forms
 				return collection.Contains (link);
 			}
 
+#if NET_2_0
+			public virtual bool ContainsKey (string key)
+			{
+				return !(this[key] == null);
+			}
+#endif
+
 			public IEnumerator GetEnumerator ()
 			{
 				return collection.GetEnumerator ();
@@ -987,6 +1033,20 @@ namespace System.Windows.Forms
 				return collection.IndexOf (link);
 			}
 
+#if NET_2_0
+			public virtual int IndexOfKey (string key)
+			{
+				if (string.IsNullOrEmpty (key))
+					return -1;
+					
+				return IndexOf (this[key]);
+			}
+			
+			public bool LinksAdded {
+				get { return !IsDefault; }
+			}
+#endif
+
 			public void Remove (LinkLabel.Link value)
 			{
 				collection.Remove (value);
@@ -994,6 +1054,13 @@ namespace System.Windows.Forms
 				owner.CreateLinkPieces ();
 			}
 
+#if NET_2_0
+			public virtual void RemoveByKey (string key)
+			{	
+				Remove (this[key]);
+			}
+#endif
+
 			public void RemoveAt (int index)
 			{
 				if (index >= Count)

+ 149 - 11
mcs/class/Managed.Windows.Forms/System.Windows.Forms/PrintPreviewDialog.cs

@@ -402,7 +402,24 @@ namespace System.Windows.Forms {
 			get { return base.AutoScrollMinSize; }
 			set { base.AutoScrollMinSize = value; }
 		}
- 
+
+#if NET_2_0
+		[Browsable (false)]
+		[EditorBrowsable (EditorBrowsableState.Never)]
+		[DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
+		public override bool AutoSize {
+			get { return base.AutoSize; }
+			set { base.AutoSize = value; }
+		}
+
+		[Browsable (false)]
+		[EditorBrowsable (EditorBrowsableState.Never)]
+		public override AutoValidate AutoValidate {
+			get { return base.AutoValidate; }
+			set { base.AutoValidate = value; }
+		}
+#endif
+
 		[Browsable(false)]
 		[EditorBrowsable(EditorBrowsableState.Never)]
 		public override Color BackColor {
@@ -426,7 +443,16 @@ namespace System.Windows.Forms {
 				base.BackgroundImage = value;
 			}
 		}
- 
+
+#if NET_2_0
+		[Browsable (false)]
+		[EditorBrowsable (EditorBrowsableState.Never)]
+		public override ImageLayout BackgroundImageLayout {
+			get { return base.BackgroundImageLayout; }
+			set { base.BackgroundImageLayout = value; }
+		}
+#endif
+
 		// new property so we can set EditorBrowsable to never.
 		[Browsable(false)]
 		[EditorBrowsable(EditorBrowsableState.Never)]
@@ -454,7 +480,16 @@ namespace System.Windows.Forms {
 				base.ContextMenu = value;
 			}
 		}
- 
+
+#if NET_2_0
+		[Browsable (false)]
+		[EditorBrowsable (EditorBrowsableState.Never)]
+		public override ContextMenuStrip ContextMenuStrip {
+			get { return base.ContextMenuStrip; }
+			set { base.ContextMenuStrip = value; }
+		}
+#endif
+
 		// new property so we can set EditorBrowsable to never.
 		[Browsable(false)]
 		[EditorBrowsable(EditorBrowsableState.Never)]
@@ -481,7 +516,13 @@ namespace System.Windows.Forms {
 		public new ControlBindingsCollection DataBindings {
 			get { return base.DataBindings; }
 		}
- 
+
+#if NET_2_0
+		protected override Size DefaultMinimumSize {
+			get { return new Size (370, 300); }
+		}
+#endif
+
 		[Browsable(false)]
 		[EditorBrowsable(EditorBrowsableState.Never)]
 		public override DockStyle Dock {
@@ -600,7 +641,16 @@ namespace System.Windows.Forms {
 			get { return base.Location; }
 			set { base.Location = value; }
 		}
- 
+
+#if NET_2_0
+		[Browsable (false)]
+		[EditorBrowsable (EditorBrowsableState.Never)]
+		public new Padding Margin {
+			get { return base.Margin; }
+			set { base.Margin = value; }
+		}
+#endif
+
 		// new property so we can set EditorBrowsable to never.
 		[Browsable(false)]
 		[EditorBrowsable(EditorBrowsableState.Never)]
@@ -652,6 +702,15 @@ namespace System.Windows.Forms {
 			get { return base.Opacity; }
 			set { base.Opacity = value; }
 		}
+
+#if NET_2_0
+		[Browsable (false)]
+		[EditorBrowsable (EditorBrowsableState.Never)]
+		public new Padding Padding {
+			get { return base.Padding; }
+			set { base.Padding = value; }
+		}
+#endif
  
 		[Browsable(false)]
 #if !NET_2_0
@@ -672,7 +731,16 @@ namespace System.Windows.Forms {
 				base.RightToLeft = value;
 			}
 		}
- 
+
+#if NET_2_0
+		[Browsable (false)]
+		[EditorBrowsable (EditorBrowsableState.Never)]
+		public override bool RightToLeftLayout {
+			get { return base.RightToLeftLayout; }
+			set { base.RightToLeftLayout = value; }
+		}
+#endif
+
 		// new property so we can set Browsable/EditorBrowsable
 		[Browsable(false)]
 		[DefaultValue(false)]
@@ -762,6 +830,15 @@ namespace System.Windows.Forms {
 			}
 		}
 
+#if NET_2_0
+		[Browsable (false)]
+		[EditorBrowsable (EditorBrowsableState.Never)]
+		public new bool UseWaitCursor {
+			get { return base.UseWaitCursor; }
+			set { base.UseWaitCursor = value; }
+		}
+#endif
+
 		// new property so we can set Browsable/EditorBrowsable
 		[Browsable(false)]
 		[EditorBrowsable(EditorBrowsableState.Never)]
@@ -792,6 +869,22 @@ namespace System.Windows.Forms {
 			base.OnClosing (e);
 		}
 
+#if NET_2_0
+		[Browsable (false)]
+		[EditorBrowsable (EditorBrowsableState.Never)]
+		public new event EventHandler AutoSizeChanged {
+			add { base.AutoSizeChanged += value; }
+			remove { base.AutoSizeChanged -= value; }
+		}
+
+		[Browsable (false)]
+		[EditorBrowsable (EditorBrowsableState.Never)]
+		public new event EventHandler AutoValidateChanged {
+			add { base.AutoValidateChanged += value; }
+			remove { base.AutoValidateChanged -= value; }
+		}
+#endif
+
 		// new event so we can set Browsable/EditorBrowsable
 		[Browsable(false)]
 		[EditorBrowsable(EditorBrowsableState.Never)]
@@ -807,7 +900,16 @@ namespace System.Windows.Forms {
 			add { base.BackgroundImageChanged += value; }
 			remove { base.BackgroundImageChanged -= value; }
 		}
- 
+
+#if NET_2_0
+		[Browsable (false)]
+		[EditorBrowsable (EditorBrowsableState.Never)]
+		public new event EventHandler BackgroundImageLayoutChanged {
+			add { base.BackgroundImageLayoutChanged += value; }
+			remove { base.BackgroundImageLayoutChanged -= value; }
+		}
+#endif
+
 		// new event so we can set Browsable/EditorBrowsable
 		[Browsable(false)]
 		[EditorBrowsable(EditorBrowsableState.Never)]
@@ -823,7 +925,16 @@ namespace System.Windows.Forms {
 			add { base.ContextMenuChanged += value; }
 			remove { base.ContextMenuChanged -= value; }
 		}
- 
+
+#if NET_2_0
+		[Browsable (false)]
+		[EditorBrowsable (EditorBrowsableState.Never)]
+		public new event EventHandler ContextMenuStripChanged {
+			add { base.ContextMenuStripChanged += value; }
+			remove { base.ContextMenuStripChanged -= value; }
+		}
+#endif
+
 		// new event so we can set Browsable/EditorBrowsable
 		[Browsable(false)]
 		[EditorBrowsable(EditorBrowsableState.Never)]
@@ -879,7 +990,16 @@ namespace System.Windows.Forms {
 			add { base.LocationChanged += value; }
 			remove { base.LocationChanged -= value; }
 		}
- 
+
+#if NET_2_0
+		[Browsable (false)]
+		[EditorBrowsable (EditorBrowsableState.Never)]
+		public new event EventHandler MarginChanged {
+			add { base.MarginChanged += value; }
+			remove { base.MarginChanged -= value; }
+		}
+#endif
+
 		// new event so we can set Browsable/EditorBrowsable
 		[Browsable(false)]
 		[EditorBrowsable(EditorBrowsableState.Never)]
@@ -895,7 +1015,16 @@ namespace System.Windows.Forms {
 			add { base.MinimumSizeChanged += value; }
 			remove { base.MinimumSizeChanged -= value; }
 		}
- 
+
+#if NET_2_0
+		[Browsable (false)]
+		[EditorBrowsable (EditorBrowsableState.Never)]
+		public new event EventHandler PaddingChanged {
+			add { base.PaddingChanged += value; }
+			remove { base.PaddingChanged -= value; }
+		}
+#endif
+
 		// new event so we can set Browsable/EditorBrowsable
 		[Browsable(false)]
 		[EditorBrowsable(EditorBrowsableState.Never)]
@@ -903,7 +1032,16 @@ namespace System.Windows.Forms {
 			add { base.RightToLeftChanged += value; }
 			remove { base.RightToLeftChanged -= value; }
 		}
- 
+
+#if NET_2_0
+		[Browsable (false)]
+		[EditorBrowsable (EditorBrowsableState.Never)]
+		public new event EventHandler RightToLeftLayoutChanged {
+			add { base.RightToLeftLayoutChanged += value; }
+			remove { base.RightToLeftLayoutChanged -= value; }
+		}
+#endif
+
 		// new event so we can set Browsable/EditorBrowsable
 		[Browsable(false)]
 		[EditorBrowsable(EditorBrowsableState.Never)]

+ 79 - 1
mcs/class/Managed.Windows.Forms/System.Windows.Forms/TabPage.cs

@@ -27,8 +27,13 @@ using System;
 using System.ComponentModel;
 using System.ComponentModel.Design;
 using System.Drawing;
+using System.Runtime.InteropServices;
 
 namespace System.Windows.Forms {
+#if NET_2_0
+	[ComVisible (true)]
+	[ClassInterface (ClassInterfaceType.AutoDispatch)]
+#endif
 	[DefaultEvent("Click")]
 	[DesignTimeVisible(false)]
 	[DefaultProperty("Text")]
@@ -65,6 +70,44 @@ namespace System.Windows.Forms {
 
 		#region .NET 2.0 Public Instance Properties
 #if NET_2_0
+		[Browsable (false)]
+		[EditorBrowsable (EditorBrowsableState.Never)]
+		[DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
+		public override bool AutoSize {
+			get { return base.AutoSize; }
+			set { base.AutoSize = value; }
+		}
+
+		[Browsable (false)]
+		[Localizable (false)]
+		[EditorBrowsable (EditorBrowsableState.Never)]
+		[DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
+		public override AutoSizeMode AutoSizeMode {
+			get { return base.AutoSizeMode; }
+			set { base.AutoSizeMode = value; }
+		}
+
+		[Browsable (false)]
+		[DefaultValue ("{Width=0, Height=0}")]
+		[EditorBrowsable (EditorBrowsableState.Never)]
+		public override Size MaximumSize {
+			get { return base.MaximumSize; }
+			set { base.MaximumSize = value; }
+		}
+
+		[Browsable (false)]
+		[EditorBrowsable (EditorBrowsableState.Never)]
+		public override Size MinimumSize {
+			get { return base.MinimumSize; }
+			set { base.MinimumSize = value; }
+		}
+
+		[Browsable (false)]
+		[EditorBrowsable (EditorBrowsableState.Never)]
+		public new Size PreferredSize {
+			get { return base.PreferredSize; }
+		}
+		
 		[DefaultValue (false)]
 		public bool UseVisualStyleBackColor {
 			get { return use_visual_style_back_color; }
@@ -118,9 +161,9 @@ namespace System.Windows.Forms {
 		}
 
 #if NET_2_0
+		[Localizable (true)]
 		[RefreshProperties (RefreshProperties.Repaint)]
 		[DefaultValue ("")]
-		[DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
 		[Editor ("System.Windows.Forms.Design.ImageIndexEditor, " + Consts.AssemblySystem_Design,
 			 "System.Drawing.Design.UITypeEditor, " + Consts.AssemblySystem_Drawing)]
 		[TypeConverter (typeof (ImageKeyConverter))]
@@ -270,10 +313,24 @@ namespace System.Windows.Forms {
 		{
 			base.OnLeave (e);
 		}
+
+		protected override void OnPaintBackground (PaintEventArgs e)
+		{
+			base.OnPaintBackground (e);
+		}
 #endif
 		#endregion	// Protected Instance Methods
 
 		#region Events
+#if NET_2_0
+		[Browsable (false)]
+		[EditorBrowsable (EditorBrowsableState.Never)]
+		public new event EventHandler AutoSizeChanged {
+			add { base.AutoSizeChanged += value; }
+			remove { base.AutoSizeChanged -= value; }
+		}
+#endif
+
 		[Browsable(false)]
 		[EditorBrowsable(EditorBrowsableState.Never)]
 		public new event EventHandler DockChanged {
@@ -288,6 +345,15 @@ namespace System.Windows.Forms {
 			remove { base.EnabledChanged -= value; }
 		}
 
+#if NET_2_0
+		[Browsable (false)]
+		[EditorBrowsable (EditorBrowsableState.Never)]
+		public new event EventHandler LocationChanged {
+			add { base.LocationChanged += value; }
+			remove { base.LocationChanged -= value; }
+		}
+#endif
+
 		[Browsable(false)]
 		[EditorBrowsable(EditorBrowsableState.Never)]
 		public new event EventHandler TabIndexChanged {
@@ -302,6 +368,15 @@ namespace System.Windows.Forms {
 			remove { base.TabStopChanged -= value; }
 		}
 
+#if NET_2_0
+		[Browsable (true)]
+		[EditorBrowsable (EditorBrowsableState.Always)]
+		public new event EventHandler TextChanged {
+			add { base.TextChanged += value; }
+			remove { base.TextChanged -= value; }
+		}
+#endif
+
 		[Browsable(false)]
 		[EditorBrowsable(EditorBrowsableState.Never)]
 		public new event EventHandler VisibleChanged {
@@ -325,6 +400,9 @@ namespace System.Windows.Forms {
 		}
 #endif
 		#region Class TabPageControlCollection
+#if NET_2_0
+		[ComVisible (false)]
+#endif
 		public class TabPageControlCollection : ControlCollection {
 
 			//private TabPage owner;

+ 29 - 2
mcs/class/Managed.Windows.Forms/System.Windows.Forms/TextBox.cs

@@ -38,6 +38,8 @@ namespace System.Windows.Forms {
 
 #if NET_2_0
 	[ComVisible(true)]
+	[ClassInterface (ClassInterfaceType.AutoDispatch)]
+	[Designer ("System.Windows.Forms.Design.TextBoxDesigner, " + Consts.AssemblySystem_Design, "System.ComponentModel.Design.IDesigner")]
 #endif
 	public class TextBox : TextBoxBase {
 		#region Variables
@@ -129,6 +131,8 @@ namespace System.Windows.Forms {
 		[Browsable (true)]
 		[EditorBrowsable (EditorBrowsableState.Always)]
 		[Localizable (true)]
+		[Editor ("System.Windows.Forms.Design.ListControlStringCollectionEditor, " + Consts.AssemblySystem_Design,
+		 "System.Drawing.Design.UITypeEditor, " + Consts.AssemblySystem_Drawing)]
 		public AutoCompleteStringCollection AutoCompleteCustomSource { 
 			get {
 				if(auto_complete_custom_source == null) {
@@ -172,6 +176,7 @@ namespace System.Windows.Forms {
 		[Browsable (true)]
 		[EditorBrowsable (EditorBrowsableState.Always)]
 		[DefaultValue (AutoCompleteSource.None)]
+		[TypeConverter (typeof (TextBoxAutoCompleteSourceConverter))]
 		public AutoCompleteSource AutoCompleteSource {
 			get { return auto_complete_source; }
 			set {
@@ -186,6 +191,7 @@ namespace System.Windows.Forms {
 		}
 
 		[DefaultValue(false)]
+		[RefreshProperties (RefreshProperties.Repaint)]
 		public bool UseSystemPasswordChar {
 			get {
 				return use_system_password_char;
@@ -228,6 +234,7 @@ namespace System.Windows.Forms {
 		[Localizable(true)]
 		[DefaultValue('\0')]
 		[MWFCategory("Behavior")]
+		[RefreshProperties (RefreshProperties.Repaint)]
 		public char PasswordChar {
 			get {
 #if NET_2_0
@@ -271,6 +278,7 @@ namespace System.Windows.Forms {
 			}
 		}
 
+#if ONLY_1_1
 		[Browsable(false)]
 		[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
 		public override int SelectionLength {
@@ -281,7 +289,7 @@ namespace System.Windows.Forms {
 				base.SelectionLength = value;
 			}
 		}
-
+#endif
 
 		public override string Text {
 			get {
@@ -341,12 +349,13 @@ namespace System.Windows.Forms {
 			}
 		}
 
+#if ONLY_1_1
 		protected override ImeMode DefaultImeMode {
 			get {
 				return base.DefaultImeMode;
 			}
 		}
-
+#endif
 #if NET_2_0
 		protected override void Dispose (bool disposing)
 		{
@@ -369,9 +378,11 @@ namespace System.Windows.Forms {
 			base.OnHandleCreated (e);
 		}
 
+#if ONLY_1_1
 		protected override void OnMouseUp(MouseEventArgs e) {
 			base.OnMouseUp (e);
 		}
+#endif
 
 		protected virtual void OnTextAlignChanged(EventArgs e) {
 			EventHandler eh = (EventHandler)(Events [TextAlignChangedEvent]);
@@ -478,10 +489,26 @@ namespace System.Windows.Forms {
 			}
 		}
 
+		protected override void OnBackColorChanged (EventArgs e)
+		{
+			base.OnBackColorChanged (e);
+		}
+		
 		protected override void OnFontChanged (EventArgs e)
 		{
 			base.OnFontChanged (e);
 		}
+
+		protected override void OnHandleDestroyed (EventArgs e)
+		{
+			base.OnHandleDestroyed (e);
+		}
 #endif
 	}
+	
+#if NET_2_0
+	internal class TextBoxAutoCompleteSourceConverter : TypeConverter
+	{
+	}
+#endif
 }

+ 67 - 1
mcs/class/Managed.Windows.Forms/System.Windows.Forms/TextBoxBase.cs

@@ -37,6 +37,11 @@ using System.Runtime.InteropServices;
 using System.Collections;
 
 namespace System.Windows.Forms {
+#if NET_2_0
+	[ComVisible (true)]
+	[DefaultBindingProperty ("Text")]
+	[ClassInterface (ClassInterfaceType.AutoDispatch)]
+#endif
 	[DefaultEvent("TextChanged")]
 	[Designer("System.Windows.Forms.Design.TextBoxBaseDesigner, " + Consts.AssemblySystem_Design)]
 	public abstract class TextBoxBase : Control {
@@ -204,6 +209,10 @@ namespace System.Windows.Forms {
 			}
 		}
 
+#if NET_2_0
+		[Browsable (false)]
+		[EditorBrowsable (EditorBrowsableState.Never)]
+#endif
 		[DefaultValue(true)]
 		[Localizable(true)]
 		[RefreshProperties(RefreshProperties.Repaint)]
@@ -319,6 +328,9 @@ namespace System.Windows.Forms {
 			}
 		}
 
+#if NET_2_0
+		[MergableProperty (false)]
+#endif
 		[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
 		[Editor("System.Windows.Forms.Design.StringArrayEditor, " + Consts.AssemblySystem_Design, typeof(System.Drawing.Design.UITypeEditor))]
 		[Localizable(true)]
@@ -469,6 +481,9 @@ namespace System.Windows.Forms {
 			}
 		}
 
+#if NET_2_0
+		[RefreshProperties (RefreshProperties.Repaint)]	
+#endif
 		[DefaultValue(false)]
 		[MWFCategory("Behavior")]
 		public bool ReadOnly {
@@ -569,12 +584,15 @@ namespace System.Windows.Forms {
 		}
 
 #if NET_2_0
+		[DefaultValue (true)]
 		public virtual bool ShortcutsEnabled {
 			get { return shortcuts_enabled; }
 			set { shortcuts_enabled = value; }
 		}
-#endif
 
+		[Editor ("System.ComponentModel.Design.MultilineStringEditor, " + Consts.AssemblySystem_Design,
+			 "System.Drawing.Design.UITypeEditor, " + Consts.AssemblySystem_Drawing)]
+#endif
 		[Localizable(true)]
 		public override string Text {
 			get {
@@ -651,11 +669,21 @@ namespace System.Windows.Forms {
 			}
 		}
 #if NET_2_0
+		[Browsable (false)]
+		[EditorBrowsable (EditorBrowsableState.Never)]
 		public override ImageLayout BackgroundImageLayout {
 			get { return base.BackgroundImageLayout; } 
 			set { base.BackgroundImageLayout = value; }
 		}
 
+		[Browsable (false)]
+		[EditorBrowsable (EditorBrowsableState.Never)]
+		[DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
+		public new Padding Padding {
+			get { return base.Padding; }
+			set { base.Padding = value; }
+		}
+		
 		protected override Cursor DefaultCursor {
 			get { return Cursors.IBeam; }
 		}
@@ -677,6 +705,7 @@ namespace System.Windows.Forms {
 
 #if NET_2_0
 		// Currently our double buffering breaks our scrolling, so don't let people enable this
+		[EditorBrowsable (EditorBrowsableState.Never)]
 		protected override bool DoubleBuffered {
 			get { return false; }
 			set { }
@@ -983,6 +1012,13 @@ namespace System.Windows.Forms {
 				eh (this, e);
 		}
 
+#if NET_2_0
+		protected override void OnPaddingChanged (EventArgs e)
+		{
+			base.OnPaddingChanged (e);
+		}
+#endif
+
 		protected virtual void OnReadOnlyChanged(EventArgs e) {
 			EventHandler eh = (EventHandler)(Events [ReadOnlyChangedEvent]);
 			if (eh != null)
@@ -1467,6 +1503,8 @@ namespace System.Windows.Forms {
 			remove { Events.RemoveHandler (AcceptsTabChangedEvent, value); }
 		}
 
+		[Browsable (false)]
+		[EditorBrowsable (EditorBrowsableState.Never)]
 		public new event EventHandler AutoSizeChanged {
 			add { Events.AddHandler (AutoSizeChangedEvent, value); }
 			remove { Events.RemoveHandler (AutoSizeChangedEvent, value); }
@@ -1513,8 +1551,36 @@ namespace System.Windows.Forms {
 			add { base.BackgroundImageChanged += value; }
 			remove { base.BackgroundImageChanged -= value; }
 		}
+
+#if NET_2_0
+		[Browsable (false)]
+		[EditorBrowsable (EditorBrowsableState.Never)]
+		public new event EventHandler BackgroundImageLayoutChanged {
+			add { base.BackgroundImageLayoutChanged += value; }
+			remove { base.BackgroundImageLayoutChanged -= value; }
+		}
+
+		[Browsable (true)]
+		[EditorBrowsable (EditorBrowsableState.Always)]
+		public new event MouseEventHandler MouseClick {
+			add { base.MouseClick += value; }
+			remove { base.MouseClick -= value; }
+		}
+
+		[Browsable (false)]
+		[EditorBrowsable (EditorBrowsableState.Never)]
+		[DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
+		public new event EventHandler PaddingChanged {
+			add { base.PaddingChanged += value; }
+			remove { base.PaddingChanged -= value; }
+		}
+
+		[Browsable (true)]
+		[EditorBrowsable (EditorBrowsableState.Always)]
+#else
 		[Browsable(false)]
 		[EditorBrowsable(EditorBrowsableState.Advanced)]
+#endif
 		public new event EventHandler Click {
 			add { base.Click += value; }
 			remove { base.Click -= value; }

+ 77 - 2
mcs/class/Managed.Windows.Forms/System.Windows.Forms/ToolBar.cs

@@ -36,7 +36,11 @@ using System.Drawing.Imaging;
 using System.Runtime.InteropServices;
 
 namespace System.Windows.Forms
-{	
+{
+#if NET_2_0
+	[ComVisible (true)]
+	[ClassInterface (ClassInterfaceType.AutoDispatch)]
+#endif
 	[DefaultEvent ("ButtonClick")]
 	[DefaultProperty ("Buttons")]
 	[Designer ("System.Windows.Forms.Design.ToolBarDesigner, " + Consts.AssemblySystem_Design, "System.ComponentModel.Design.IDesigner")]
@@ -53,6 +57,15 @@ namespace System.Windows.Forms
 		static object ButtonClickEvent = new object ();
 		static object ButtonDropDownEvent = new object ();
 
+#if NET_2_0
+		[Browsable (true)]
+		[EditorBrowsable (EditorBrowsableState.Always)]
+		public new event EventHandler AutoSizeChanged {
+			add { base.AutoSizeChanged += value; }
+			remove { base.AutoSizeChanged -= value; }
+		}
+#endif
+
 		[Browsable (false)]
 		[EditorBrowsable (EditorBrowsableState.Never)]
 		public new event EventHandler BackColorChanged {
@@ -67,6 +80,15 @@ namespace System.Windows.Forms
 			remove { base.BackgroundImageChanged -= value; }
 		}
 
+#if NET_2_0
+		[Browsable (false)]
+		[EditorBrowsable (EditorBrowsableState.Never)]
+		public new event EventHandler BackgroundImageLayoutChanged {
+			add { base.BackgroundImageLayoutChanged += value; }
+			remove { base.BackgroundImageLayoutChanged -= value; }
+		}
+#endif
+
 		public event ToolBarButtonClickEventHandler ButtonClick {
 			add { Events.AddHandler (ButtonClickEvent, value); }
 			remove {Events.RemoveHandler (ButtonClickEvent, value); }
@@ -150,6 +172,14 @@ namespace System.Windows.Forms
 		protected override Size DefaultSize {
 			get { return ThemeEngine.Current.ToolBarDefaultSize; }
 		}
+
+#if NET_2_0
+		[EditorBrowsable (EditorBrowsableState.Never)]
+		protected override bool DoubleBuffered {
+			get { return base.DoubleBuffered; }
+			set { base.DoubleBuffered = value; }
+		}
+#endif
 		#endregion
 
 		ToolBarAppearance appearance = ToolBarAppearance.Normal;
@@ -177,7 +207,7 @@ namespace System.Windows.Forms
 #endif
 		[DefaultValue (true)]
 		[Localizable (true)]
-		public new bool AutoSize {
+		public override bool AutoSize {
 			get { return autosize; }
 			set {
 				if (value == autosize)
@@ -211,6 +241,15 @@ namespace System.Windows.Forms
 			set { base.BackgroundImage = value; }
 		}
 
+#if NET_2_0
+		[Browsable (false)]
+		[EditorBrowsable (EditorBrowsableState.Never)]
+		public override ImageLayout BackgroundImageLayout {
+			get { return base.BackgroundImageLayout; }
+			set { base.BackgroundImageLayout = value; }
+		}
+#endif
+
 		[DefaultValue (BorderStyle.None)]
 		[DispIdAttribute (-504)]
 		public BorderStyle BorderStyle {
@@ -1055,6 +1094,21 @@ namespace System.Windows.Forms
 				}
 			}
 
+#if NET_2_0
+			public virtual ToolBarButton this[string key] {
+				get {
+					if (string.IsNullOrEmpty (key))
+						return null;
+						
+					foreach (ToolBarButton b in list)
+						if (string.Compare (b.Name, key, true) == 0)
+							return b;
+							
+					return null;
+				}
+			}
+#endif
+
 			bool ICollection.IsSynchronized {
 				get { return list.IsSynchronized; }
 			}
@@ -1118,6 +1172,13 @@ namespace System.Windows.Forms
 				return list.Contains (button);
 			}
 
+#if NET_2_0
+			public virtual bool ContainsKey (string key)
+			{
+				return !(this[key] == null);
+			}
+#endif
+
 			public IEnumerator GetEnumerator ()
 			{
 				return list.GetEnumerator ();
@@ -1178,6 +1239,13 @@ namespace System.Windows.Forms
 				return list.IndexOf (button);
 			}
 
+#if NET_2_0
+			public virtual int IndexOfKey (string key)
+			{
+				return IndexOf (this[key]);
+			}
+#endif
+
 			public void Insert (int index, ToolBarButton button)
 			{
 				list.Insert (index, button);
@@ -1195,6 +1263,13 @@ namespace System.Windows.Forms
 				list.RemoveAt (index);
 				owner.Redraw (true);
 			}
+
+#if NET_2_0
+			public virtual void RemoveByKey (string key)
+			{
+				Remove (this[key]);
+			}
+#endif
 			#endregion methods
 		}