画面上(のPictureBox)をクリックしたときの処理
ウィンドウ画面上をマウスでクリックしたときに、表示されている画像が90度回転されるような処理を実現する。
まず、PictureBoxを配置して画面全体を覆うようにする。ここに画像ファイルを貼り付ける。画像ファイルは外部ファイルとしてパスで指定する。PictureBoxが画面全体を覆っているので、画面上でのクリックはself.Clickではなく、self._pictureBox1.Clickで探知されることになる。
ソースコードは以下の通り。
import System.Drawing import System.Windows.Forms from System.Drawing import * from System.Windows.Forms import * class MainForm(Form): def __init__(self): self.InitializeComponent() def InitializeComponent(self): self._pictureBox1 = System.Windows.Forms.PictureBox() self._pictureBox1.BeginInit() self.SuspendLayout() # # pictureBox1 # self.im = Image.FromFile("sample2.PNG") self._pictureBox1.Dock = System.Windows.Forms.DockStyle.Fill self._pictureBox1.Image = self.im self._pictureBox1.Location = System.Drawing.Point(0, 0) self._pictureBox1.Name = "pictureBox1" self._pictureBox1.Size = System.Drawing.Size(284, 262) self._pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage self._pictureBox1.TabIndex = 0 self._pictureBox1.TabStop = False # # MainForm # self.ClientSize = System.Drawing.Size(284, 262) self.Controls.Add(self._pictureBox1) self.Name = "MainForm" self.Text = "test" self._pictureBox1.EndInit() self.ResumeLayout(False) self._pictureBox1.Click += self.fm_Click def fm_Click(self, sender, e): self.im.RotateFlip(RotateFlipType.Rotate90FlipNone) self._pictureBox1.Invalidate()
画像がクリックされたときの処理はfm_Clickに記述する。画像ファイルの90度回転と再描画を行う。
実行例は以下の通り。