PoshCode Archive  Artifact [19cb7d0d96]

Artifact 19cb7d0d96b0d9894011e65fa56627c8ac1edbac59d0a867a0105bafad42b514:

  • File Movable-button.ps1 — part of check-in [5b71cd584e] at 2018-06-10 13:36:12 on branch trunk — Just for fun! (user: greg zakharov size: 1581)

# encoding: ascii
# api: powershell
# title: Movable button
# description: Just for fun!
# version: 0.1
# type: function
# author: greg zakharov
# license: CC0
# x-poshcode-id: 4089
# x-archived: 2013-05-13T15:48:40
# x-published: 2013-04-08T14:28:00
#
#
$btnMove_MouseDown= {
  if ($_.Button -eq [Windows.Forms.MouseButtons]::Left) {
    $bool = $true
    $coor = [Drawing.Point]$_.Location
  }
}

$btnMove_MouseMove= {
  if ($bool) {
    $btnMove.Location = New-Object Drawing.Point(
      ($btnMove.Left - $btnMove.X + $_.X), ($btnMove.Top - $btnMove.Y + $_.Y)
    )
  }
}

$btnMove_MouseUp= {
  if ($_.Button -eq [Windows.Forms.MouseButtons]::Left) { $bool = $false }
}

function frmMain_Show {
  Add-Type -AssemblyName System.Windows.Forms
  [Windows.Forms.Application]::EnableVisualStyles()

  $frmMain = New-Object Windows.Forms.Form
  $btnMove = New-Object Windows.Forms.Button
  #
  #btnMove
  #
  $btnMove.Location = New-Object Drawing.Point(($frmMain.Width / 2 + 70), ($frmMain.Height / 2))
  $btnMove.Size = New-Object Drawing.Size(110, 27)
  $btnMove.Text = "Click and move"
  $btnMove.Add_MouseDown($btnMove_MouseDown)
  $btnMove.Add_MouseMove($btnMove_MouseMove)
  $btnMove.Add_MouseUp($btnMove_MouseUp)
  #
  #frmMain
  #
  $frmMain.ClientSize = New-Object Drawing.Size(570, 370)
  $frmMain.Controls.Add($btnMove)
  $frmMain.FormBorderStyle = "FixedSingle"
  $frmMain.MaximizeBox = $false
  $frmMain.StartPosition = "CenterScreen"
  $frmMain.Text = "Form1"

  [void]$frmMain.ShowDialog()
}

frmMain_Show