【问题标题】:form control does not display centered表单控件不显示居中
【发布时间】:2019-10-21 13:16:24
【问题描述】:

当我创建一个表单并添加一个控件时,我将大小和位置设置为以表单为中心。相反,我得到了一些向右和向下偏移的东西。

造成这种偏移的原因是什么?!

[void][Reflection.Assembly]::LoadWithPartialName('Microsoft.VisualBasic')
[void][Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms')
[void][Reflection.Assembly]::LoadWithPartialName('System.Drawing')

# Main form
$form = New-Object System.Windows.Forms.Form
$form.Size = [System.Drawing.Size]::new(400,500)
$form.StartPosition = 'CenterScreen'
$form.SizeGripStyle = 'Hide'
$form.MaximizeBox = $false
$form.ShowInTaskbar = $true
$form.Text = 'I wont display right.'

#control
$mainPanel = New-Object System.Windows.Forms.Panel
$mainPanel.Anchor = [System.Windows.Forms.AnchorStyles]::Top
$mainPanel.Size = [System.Drawing.Size]::new(($form.Width - 50),($form.Height - 50))
$mainPanel.Location = [System.Drawing.Point]::new(25,25)
$mainPanel.AutoScroll = $true
$mainPanel.BackColor = [System.Drawing.Color]::Black
$form.Controls.Add($mainPanel)

$form.BringToFront()
$form.ShowDialog()

结果:

【问题讨论】:

  • 截图会有帮助
  • 一个控件被放置在表单的客户端区域。您正在考虑表单的整个大小,包括标题和边框。使用表单的 ClientRectangle(或 ClientSize)度量来确定控件的位置。
  • @CaiusJard 为你添加了图片,尽管这已经得到了回答,以防后面有人好奇。
  • 也感谢大家的快速回复!非常感谢。

标签: c# winforms powershell


【解决方案1】:

表单大小和工作空间(客户)区域不同。

  • 表单大小还包括边框大小和标题栏。
  • 客户区是您放置控件的实际空间(位置 0,0)。

只需更改代码中的一行即可获得所需的输出:

$mainPanel.Size = [System.Drawing.Size]::new(($form.ClientSize.Width - 50),($form.ClientSize.Height - 50))

【讨论】:

  • 可以按clientsize设置主窗体吗?是否有一个属性可以显示客户大小和大小之间的差异?
  • Clientsize 总是小于表单大小。您可以通过计算客户端大小来设置 main 大小,因此最后您会得到所需的客户端大小..like frm.size.width =400;差异 = frm.size.width - frm.cz.width ; frm.size.width += 差异;以同样的方式计算表单的高度
  • 客户端大小取决于主题/分辨率/表单边框样式等。所以我们必须从客户端大小计算表单大小..
【解决方案2】:

尝试以下调整:

$mainPanel.Size = [System.Drawing.Size]::new(($form.ClientSize.Width - 50),($form.ClientSize.Height - 50))

【讨论】:

    猜你喜欢
    • 2015-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-04
    • 1970-01-01
    • 1970-01-01
    • 2012-01-28
    相关资源
    最近更新 更多