トップ回答者
TextBoxコントロールのSizeプロパティについて

質問
回答
-
デザイナー上でのグリフの制御でしたら、DesignerAttribute を使えば良さそうです。
ControlDesigner から派生したクラスを作成し、SelectionRules を override します。
そして、そのクラスを DesignerAttribute にて対象のコントロールに付加します。
以下はサンプルです。
// 参照設定に System.Design を追加。 using System.Windows.Forms.Design; [Designer(typeof(UserControl1Designer))] public partial class UserControl1 : UserControl { public UserControl1() { InitializeComponent(); } } public class UserControl1Designer : ControlDesigner { public override SelectionRules SelectionRules { get { return SelectionRules.Moveable | SelectionRules.RightSizeable | SelectionRules.LeftSizeable; } } }
- 回答としてマーク hahuhahuhahu 2010年5月27日 6:42
すべての返信
-
TextBoxを貼りつけたユーザーコントロールを別フォームに貼付け、デザイナ上でTextBoxの上下左右、角にある白い□のドラッグアンドドロップにより、高さ/幅のサイズを変更できますが、この白い□をNumericUpDownのように、左右のみにして、幅だけ設定させたいです。
ユーザーコントロール側でSizeプロパティを隠蔽すると、左上の□だけが残る状態になり、実現したい内容ではありません。
どうすれば実現可能なのか、ご教授お願いします。
ユーザーコントロールの OnResize メソッドをオーバーライドすれば可能だと思われます。たとえばこんな感じ。高さを 60 に固定しています。public partial class UserControl1 : UserControl { int _height = 60; public UserControl1() { InitializeComponent(); } protected override void OnCreateControl() { base.OnCreateControl(); _height = this.Height; } protected override void OnResize(EventArgs e) { base.OnResize(e); this.Height = _height; } }
ひらぽん http://d.hatena.ne.jp/hilapon/ -
デザイナー上でのグリフの制御でしたら、DesignerAttribute を使えば良さそうです。
ControlDesigner から派生したクラスを作成し、SelectionRules を override します。
そして、そのクラスを DesignerAttribute にて対象のコントロールに付加します。
以下はサンプルです。
// 参照設定に System.Design を追加。 using System.Windows.Forms.Design; [Designer(typeof(UserControl1Designer))] public partial class UserControl1 : UserControl { public UserControl1() { InitializeComponent(); } } public class UserControl1Designer : ControlDesigner { public override SelectionRules SelectionRules { get { return SelectionRules.Moveable | SelectionRules.RightSizeable | SelectionRules.LeftSizeable; } } }
- 回答としてマーク hahuhahuhahu 2010年5月27日 6:42