| File: System\Windows\Forms\Design\TabPageDesigner.cs | Web Access |
| Project: src\winforms\src\System.Windows.Forms.Design\src\System.Windows.Forms.Design.csproj (System.Windows.Forms.Design) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System.ComponentModel.Design; using System.Drawing; using System.Windows.Forms.Design.Behavior; namespace System.Windows.Forms.Design; internal class TabPageDesigner : PanelDesigner { public override bool CanBeParentedTo(IDesigner parentDesigner) => (parentDesigner is not null && parentDesigner.Component is TabControl); public override SelectionRules SelectionRules { get { SelectionRules rules = base.SelectionRules; Control ctl = Control; if (ctl is not null && ctl.Parent is TabControl) { rules &= ~SelectionRules.AllSizeable; } return rules; } } internal void OnDragDropInternal(DragEventArgs de) => OnDragDrop(de); internal void OnDragEnterInternal(DragEventArgs de) => OnDragEnter(de); internal void OnDragLeaveInternal(EventArgs e) => OnDragLeave(e); internal void OnDragOverInternal(DragEventArgs e) => OnDragOver(e); internal void OnGiveFeedbackInternal(GiveFeedbackEventArgs e) => OnGiveFeedback(e); protected override ControlBodyGlyph GetControlGlyph(GlyphSelectionType selectionType) { // create a new body glyph with empty bounds. This will keep incorrect tab pages from stealing drag/drop messages // which are now handled by the TabControlDesigner get the right cursor for this component. OnSetCursor(); Rectangle translatedBounds = Rectangle.Empty; // create our glyph, and set its cursor appropriately ControlBodyGlyph g = new(translatedBounds, Cursor.Current, Control, this); return g; } }