You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 08:24:02