C# Winform中如何设置TextBox文本框与父窗体之间的间距?
WinForm锚定控件保留边框间距解决方案
针对设置Anchor属性后文本框紧贴窗体边框的问题,有两种成熟实现方案:
方案1:调整父容器Padding属性(推荐)
给承载文本框的父容器_uc设置内边距,锚定的控件会自动避开Padding区域,无需额外调整控件坐标:
// 给父容器设置左右各12像素、上下各8像素的内边距,数值可根据需求自行调整 _uc.Padding = new Padding(12, 8, 12, 8); // 后续文本框初始化代码保持原有逻辑即可 _input_comment = new WinForms.TextBox(); _input_comment.Anchor = (AnchorStyles.Left | AnchorStyles.Top | AnchorStyles.Right); _input_comment.SetBounds(x_axis_position, y_pointer, 100, 40); _input_comment.Size = new Size(216, 60); _input_comment.Multiline = true; _input_comment.WordWrap = true; _input_comment.ScrollBars = ScrollBars.Vertical; _uc.Controls.Add(_input_comment);
方案2:调整控件初始坐标与宽度
如果不想修改父容器配置,直接调整文本框的初始横坐标和宽度即可,由于你设置了左右锚定,窗体拉伸时控件会自动保持和左右边框的初始间距:
_input_comment = new WinForms.TextBox(); _input_comment.Anchor = (AnchorStyles.Left | AnchorStyles.Top | AnchorStyles.Right); // 初始横坐标设为12,代表默认距离左侧边框12像素 // 宽度设置为父容器宽度减去24(左右各留12像素),可按需调整数值 _input_comment.SetBounds(12, y_pointer, _uc.Width - 24, 40); _input_comment.Multiline = true; _input_comment.WordWrap = true; _input_comment.ScrollBars = ScrollBars.Vertical; _uc.Controls.Add(_input_comment);
两种方案都可以实现窗体拉伸时,文本框和边框始终保持固定间距的效果,不会出现贴边问题。
内容的提问来源于stack exchange,提问作者Dana Troushinsky
相关产品推荐
相关产品推荐

