Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>As an update to the Miral's answer.. here are a few of the "missing steps", for someone new that's looking how to do this. :) The C# code above is almost 'drop-in' ready, with the exception of changing a few of the values to reference the UserControl that will be modified.</p> <p>Possible References Needed:<br/> System.Design (@robyaw)</p> <p>Usings needed:</p> <pre><code>using System.Windows.Forms.Design; using System.Windows.Forms.Design.Behavior; using System.ComponentModel; using System.ComponentModel.Design; using System.Collections; </code></pre> <p>On your UserControl you need the following Attribute:</p> <pre><code>[Designer(typeof(MyCustomDesigner))] </code></pre> <p>Then you need a "designer" class that will have the SnapLines override:</p> <pre><code>private class MyCustomerDesigner : ControlDesigner { public override IList SnapLines { get { /* Code from above */ IList snapLines = base.SnapLines; // *** This will need to be modified to match your user control MyControl control = Control as MyControl; if (control == null) { return snapLines; } // *** This will need to be modified to match the item in your user control // This is the control in your UC that you want SnapLines for the entire UC IDesigner designer = TypeDescriptor.CreateDesigner( control.textBoxValue, typeof(IDesigner)); if (designer == null) { return snapLines; } // *** This will need to be modified to match the item in your user control designer.Initialize(control.textBoxValue); using (designer) { ControlDesigner boxDesigner = designer as ControlDesigner; if (boxDesigner == null) { return snapLines; } foreach (SnapLine line in boxDesigner.SnapLines) { if (line.SnapLineType == SnapLineType.Baseline) { // *** This will need to be modified to match the item in your user control snapLines.Add(new SnapLine(SnapLineType.Baseline, line.Offset + control.textBoxValue.Top, line.Filter, line.Priority)); break; } } } return snapLines; } } } } </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload