Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 对齐文本框并标记文本_C#_.net_Layout_Alignment - Fatal编程技术网

C# 对齐文本框并标记文本

C# 对齐文本框并标记文本,c#,.net,layout,alignment,C#,.net,Layout,Alignment,我正在设计一个用户界面,我发现我自己发痒:我如何对齐文本框文本和标签文本,它们是并排的 在设计模式下,这很简单,你用鼠标移动一个,一条紫色的线出现,瞧!对齐很好,但我的是生成的代码,因此如何对齐它们的内容 谢谢大家! 编辑:布局是我不能使用的东西(我不制定规则,我的老板制定规则)看看TableLayoutPanel。获得基线匹配仍然不是那么容易,但通过垂直居中标签并将行设置为自动调整大小,您将获得有序且灵活的结果 然后使用每个控件(从控件继承)的X、Y、Width和Height属性 我喜欢使用F

我正在设计一个用户界面,我发现我自己发痒:我如何对齐文本框文本和标签文本,它们是并排的

在设计模式下,这很简单,你用鼠标移动一个,一条紫色的线出现,瞧!对齐很好,但我的是生成的代码,因此如何对齐它们的内容

谢谢大家!


编辑:布局是我不能使用的东西(我不制定规则,我的老板制定规则)

看看TableLayoutPanel。获得基线匹配仍然不是那么容易,但通过垂直居中标签并将行设置为自动调整大小,您将获得有序且灵活的结果

然后使用每个控件(从控件继承)的X、Y、Width和Height属性


我喜欢使用
FlowLayoutPanel
(而不是
TableLayoutPanel
)来实现这一目的,因为您不需要处理列记住删除每个控件上的顶部和底部锚定,使其垂直居中,并设置FlowLayoutControl.AutoSize=true和AutoSizeMode=growtandShrink

编辑:关于“布局是我不能使用的东西”的限制:那么您希望在运行时以编程方式访问紫色文本基线捕捉线位置?这是可能的,但它不可能比布局更快,因为只有控件的设计器知道它在哪里,因此您必须为所有需要它的控件创建设计器


有一些代码可以作为起点,但正如我所说的,考虑到性能限制,这可能不是正确的方法。

我已经找到了这个解决方案,但我们正在使用AppStyleing,它定义文本大小等。如果设计更改,我必须更改填充。Taht将两个控件的顶部对齐,这是ugly@Henk霍特曼:没有布局-这永远都不会很漂亮。@Matt我们使用的是Infragistics Winform控件,您可以指定一种样式,在应用程序开始运行时修改图形控件的Appearance属性。我很想知道我们使用Dock和Anchors属性的“无布局规则”的原因。这是在一个相当大的应用程序中,布局使用了更多的内存/CPU/等。所以我们使用锚定和停靠,这对我们来说已经足够了。说真的,与你放在桌面上的布局相比,桌面布局的“成本”总是很小的,所以推理似乎有缺陷。2 Q:1。flow布局不是简单地将控件垂直居中吗?这并不一定意味着文本基线是对齐的(至少在一般情况下是不对齐的,对于文本框和标签来说就足够了)。2.如果流程布局确实与文本基线对齐,而设计师是唯一知道基线的人,那么流程布局如何能够提供比使用设计师更快的实现?@chiccodoro:你说得对,基线不一定对齐,我同意这很糟糕。它比我所知道的任何其他选项都要糟糕。@romkyns:反过来,你是对的:-)实际上,垂直居中控件现在正是我在我的案例中所做的(有一个类似的问题,因此我发现了这个线程),它就足够了
int padding = 5;
textbox.Y = label.Y;
textbox.X = label.Width + padding