C# 表单控件不居中显示
创建窗体并添加控件时,我将大小和位置设置为在窗体上居中。相反,我得到的东西是向右和向下偏移的 是什么导致了这种偏移C# 表单控件不居中显示,c#,winforms,powershell,C#,Winforms,Powershell,创建窗体并添加控件时,我将大小和位置设置为在窗体上居中。相反,我得到的东西是向右和向下偏移的 是什么导致了这种偏移 [void][Reflection.Assembly]::LoadWithPartialName('Microsoft.VisualBasic')) [void][Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms')) [void][Reflection.Assembly]::LoadWithPartia
[void][Reflection.Assembly]::LoadWithPartialName('Microsoft.VisualBasic'))
[void][Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms'))
[void][Reflection.Assembly]::LoadWithPartialName('System.Drawing'))
#主要形式
$form=新对象System.Windows.Forms.form
$form.Size=[System.Drawing.Size]::新建(400500)
$form.StartPosition='CenterScreen'
$form.SizeGripStyle='Hide'
$form.MaximizeBox=$false
$form.ShowInTaskbar=$true
$form.Text='我不会正确显示。'
#控制
$mainPanel=New Object System.Windows.Forms.Panel
$mainPanel.Anchor=[System.Windows.Forms.AnchorStyles]::顶部
$mainPanel.Size=[System.Drawing.Size]::新建($form.Width-50),($form.Height-50))
$mainPanel.Location=[System.Drawing.Point]::新建(25,25)
$mainPanel.AutoScroll=$true
$mainPanel.BackColor=[System.Drawing.Color]::黑色
$form.Controls.Add($mainPanel)
$form.BringToFront()
$form.ShowDialog()
结果:
尝试以下调整:
$mainPanel.Size = [System.Drawing.Size]::new(($form.ClientSize.Width - 50),($form.ClientSize.Height - 50))
表单大小和工作空间(客户端)区域不同
- 表单大小还包括边框大小和标题栏李>
- 客户端区域是放置控件的实际空间(位置0,0)
如果控件放置在表单的客户端区域,屏幕截图将非常有用。您需要考虑表单的整体大小,包括标题和边框。使用表单的ClientRectangle(或ClientSize)度量值来确定控件的位置。@CaiusJard为您添加了图片,尽管这已经得到了回答,以防后面的任何人好奇。同时感谢大家的快速回复!非常感谢。您能按客户人数设置主窗体吗?是否有一个属性显示clientsize和size之间的差异?clientsize始终小于窗体大小。您可以通过计算客户端大小来设置main for size,因此在最后您可以得到所需的clientsize..like frm.size.width=400;差异=frm.size.WITH-frm.cz.WITH;frm.size.width+=差异;和计算表单高度的方法一样,客户端大小取决于主题/分辨率/表单边框样式等。。因此,我们必须根据客户端大小计算表单大小。。