[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 5i365 于 2022-9-19 14:09 编辑

回复 16# flashercs

怎样让输出的结果, 上下的内容左对齐? 现在输出后, 属性名和属性值上下没有对齐, 看分数不太明确
在消息框中显示时对齐就好多了
有什么办法用带表格线的形式显示在消息框中?

[System.Windows.Forms.MessageBox]::Show("输出的多行对齐的结果", "标题")
本人所发所有贴子或代码, 诸大侠若认为有改进之处,请不吝赐教,感激不尽!

TOP

本帖最后由 5i365 于 2022-9-19 19:56 编辑

回复 25# flashercs


我使用的那个软件能把ps生成exe, 所以我想
用  列表框 显示这一堆xlsx文件中,所包含的所有  姓名,


用  消息框   显示对齐的结果


执行ps1文件操作就相对麻烦了

生成exe 我已经试了, 可以成功, 就是不太完美, 存在上面所提到的问题
本人所发所有贴子或代码, 诸大侠若认为有改进之处,请不吝赐教,感激不尽!

TOP

本帖最后由 5i365 于 2022-9-20 09:49 编辑

回复 28# flashercs

多谢大侠, 刚看到,

关于最开始的列表框, 我找到了我说的那种效果, 就是设置一下列表框的属性 $listBox.Dock = 'Fill'
但是我想把OK按钮放在最下面, 宽度和对话框等宽,

另外: Form高度能否设置最大高度? 即:默认是300, 当姓名多时,则自动变为最大高度800?, 以前看到过这种效果, 如下图所示
另外, 如何把姓名按姓的第一个拼音字母按a-z排序?




  1. Add-Type -AssemblyName System.Windows.Forms
  2. $form = New-Object System.Windows.Forms.Form
  3. $form.Text = '双击要查询的姓名'
  4. $Form.FormBorderStyle = "FixedToolWindow"
  5. $form.StartPosition = 'CenterScreen'
  6. $form.ClientSize = '160, 300'
  7. $listBox = New-Object System.Windows.Forms.Listbox
  8. $listBox.Dock = 'Fill'
  9. $listBox.SelectionMode = 'MultiExtended'
  10. $listBox.Font = New-Object drawing.Font("微软雅黑", 10, [Drawing.FontStyle]::Bold)
  11. [void]$listBox.Items.Add('张三')
  12. [void]$listBox.Items.Add('李四')
  13. [void]$listBox.Items.Add('王五')
  14. [void]$listBox.Items.Add('赵六')
  15. $form.Controls.Add($listBox)
  16. $form.Topmost = $true
  17. $result = $form.ShowDialog()
  18. if ($result -eq [System.Windows.Forms.DialogResult]::OK)
  19. {
  20.         $x = $listBox.SelectedItems
  21.         $x
  22. }
复制代码
本人所发所有贴子或代码, 诸大侠若认为有改进之处,请不吝赐教,感激不尽!

TOP

本帖最后由 5i365 于 2022-9-20 09:47 编辑

回复 28# flashercs


关于结果显示那个, 感觉太复杂了, 我不需要过滤, 搜索之类的花哨功能
我想了一个简洁实用的方法:
还是用上楼的form方法
它里面仅有一个多行编辑框控件, 把结果按 Format-list 格式显示在里面就可以了    下面是能用的代码

  1. Add-Type -AssemblyName System.Windows.Forms
  2. $form = New-Object System.Windows.Forms.Form
  3. $form.Text = '显示结果'
  4. $form.ClientSize = '200, 300'
  5. $Form.FormBorderStyle = "FixedToolWindow"
  6. $form.StartPosition = 'CenterScreen'
  7. $textbox1 = New-Object 'System.Windows.Forms.TextBox'
  8. $textbox1.Name = 'textbox1'
  9. $textbox1.Dock = 'Fill'
  10. $textbox1.Multiline = $True
  11. $textbox1.Font = New-Object drawing.Font("微软雅黑", 10)
  12. $form.Controls.Add($textbox1)
  13. $result = $form.ShowDialog()
复制代码
本人所发所有贴子或代码, 诸大侠若认为有改进之处,请不吝赐教,感激不尽!

TOP

回复 29# 5i365

发现一个问题, 经常有下面的错误提示, 但是也能显示结果,
不知道是不是获取数据时出错了, 这个挺重要, 要是数据错了, 成绩汇总肯定也错了, 学生就哭晕了

ERROR: New-Object : Exception calling ".ctor" with "1" argument(s): "The file is not an valid Package file. If the file is encrypted, please supply the password in th
ERROR: e constructor."
EP3.ps1 (7, 11): ERROR: At Line: 7 char: 11
ERROR: + ...     $pack = New-Object OfficeOpenXml.ExcelPackage -ArgumentList $_.Fu ...
ERROR: +                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ERROR:     + CategoryInfo          : InvalidOperation: ( [New-Object], MethodInvocationException
ERROR:     + FullyQualifiedErrorId : ConstructorInvokedThrowException,Microsoft.PowerShell.Commands.NewObjectCommand
ERROR:
ERROR: Cannot index into a null array.
EP3.ps1 (9, 3): ERROR: At Line: 9 char: 3
ERROR: +         $a2d = $pack.Workbook.Worksheets[1].Cells.Value
ERROR: +         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ERROR:     + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
ERROR:     + FullyQualifiedErrorId : NullArray
本人所发所有贴子或代码, 诸大侠若认为有改进之处,请不吝赐教,感激不尽!

TOP

本帖最后由 5i365 于 2022-9-20 19:28 编辑

回复 32# flashercs

多谢大侠
本人所发所有贴子或代码, 诸大侠若认为有改进之处,请不吝赐教,感激不尽!

TOP

返回列表