.net - PowerShell .NET 文本框中的粗体文本

标签 .net forms powershell

是否有一种简单的方法可以使“版本 xx”等标题以粗体显示?开始使用标题标签有点烦人,因为文本会随着时间的推移而增长,并且每次都必须重新定位。

代码:

$P0Label2 = New-Object System.Windows.Forms.TextBox
$P0Label2.Location = New-Object System.Drawing.Point(8,28)
$P0Label2.Size = New-Object System.Drawing.Size(516,340)
$P0Label2.ReadOnly = $True
$P0Label2.WordWrap = $True
$P0Label2.ScrollBars = 'Vertical'
$P0Label2.Multiline = $True
$P0Label2.BackColor = 'LightSteelBlue'
$P0Label2.Text = 
    "Version 2.0:",
    "- 2015/01/05 Stuff",
    "- 2015/01/09 Stuff",
    "Version 1.0:",
    "- 2014/04/25 Stuff" | foreach {"$_`r`n"}
$P0.Controls.Add($P0Label2) 

感谢您的帮助。

完整的解决方案感谢下面的 Micky:

$P0Label2 = New-Object System.Windows.Forms.RichTextBox
$P0Label2.Location = New-Object System.Drawing.Point(8,28)
$P0Label2.Size = New-Object System.Drawing.Size(516,340)
$P0Label2.ReadOnly = $True
$P0Label2.WordWrap = $True
$P0Label2.ScrollBars = 'Vertical'
$P0Label2.Multiline = $True
$P0Label2.BackColor = 'LightSteelBlue'
$P0Label2.Text = 
    "Version 2.0:",
    "- 2015/01/05 Stuff",
    "- 2015/01/09 Stuff",
    "Version 1.0:",
    "- 2014/04/25 Stuff" | foreach {"$_`r`n"}

"Version 2.0:",
"Version 1.0:" | foreach {
    $oldFont =  $P0Label2.Font
    $font = New-Object Drawing.Font($oldFont.FontFamily, $oldFont.Size, [Drawing.FontStyle]::Bold)
    $string = $_
    $P0Label2.SelectionStart = $P0Label2.Text.IndexOf($string)
    $P0Label2.SelectionLength = $string.length
    $P0Label2.SelectionFont = $font
    $P0Label2.DeselectAll()
}
$P0.Controls.Add($P0Label2) 

最佳答案

这是使用 RichText 实现此目的的一种方法:

$P0Label2 = New-Object System.Windows.Forms.RichTextBox

让我们找到使用的字体并使用粗体制作一个新版本:

$oldFont =  $P0Label2.Font
$font = New-Object Drawing.Font($oldFont.FontFamily, $oldFont.Size, [Drawing.FontStyle]::Bold)  

现在假设我们要突出显示文本中的版本 V1.0。我们首先找到它的索引作为 $P0Label2.Text 的一部分,然后使用 SelectionStart 和 SelectionLength 来选择它,我们将字体更改为粗体版本,然后取消选择,将文本保留为粗体.

$string = "Version 1.0"
$P0Label2.SelectionStart = $P0Label2.Text.IndexOf($string)
$P0Label2.SelectionLength = $string.length
$P0Label2.SelectionFont = $font
$P0Label2.DeselectAll()

所以它不是基于标签,但它可以是解决问题的开始。

关于.net - PowerShell .NET 文本框中的粗体文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27857230/

相关文章:

.net - 在 Visual Studio 中使用 x64 库的 F# 类型提供程序

html - 当我自定义 HTML 表单元素(即下拉列表、单选按钮等)时,需要牢记哪些性能注意事项?

php - codeigniter 表单验证和数组作为字段名称

javascript - 在 Select2 中选择选项 - 禁用/启用操作未触发

powershell - 显示数组的内容和结构

c# - DynamicMethod 和类型检查

.net - List<T>.Remove(T) 或 List<T>.RemoveAt(int) 方法哪个更快?

c# - 检索 MS Access 文件中的表列表

powershell - 为什么我不能向 ADobject 添加成员

powershell - 如何使用 PowerShell 从 MSMQ 消息队列中删除特定消息