TrackBar は 横棒の中央につまみがあって、そのつまみを左右に動かして調整するバーです。
こんな感じのものです。
このTrackBarはつまみが動いたときにイベントが発生します。
そのイベントでTrackBarの値を取り出し、画像のサイズを調整したりとかに使えます。
使い方としてはTrackBarに
・最小値
・最大値
・TrackBarの値(トラックバーの位置)
・つまみを動かしたときに動く距離
を設定します。
あとは、ValueChangedイベントが発生したときに、TrackBarの値を使って処理します。
画像ファイルをPictureBoxに読み込み、そのPictureBoxのサイズを変更するサンプルを作成しました。
こんな感じです。
使用した部品は3点です。
No | 部品 | name |
① | Panel | panel1 |
② | PictureBox | pictureBox1 |
③ | TrackBar | trackBar1 |
Panelの中にPictureBoxを配置して下さい。
あとはざっくりで大丈夫です。
ValueChanged イベントを使います。
TrackBarのイベントを設定して下さい。
ダブルクリックでイベントを作ります。
プログラミング
言語:C#
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApp5
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
/// <summary>
/// トラックバー移動時処理
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void trackBar1_ValueChanged(object sender, EventArgs e)
{
// トラックバーの値を取得する
int v = trackBar1.Value;
// pictureBoxの縦横サイズをトラックバーの値にする
pictureBox1.Size = new Size(v, v);
}
/// <summary>
/// 画面起動時処理
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Form1_Load(object sender, EventArgs e)
{
// pictureBoxのサイズモードをZOOMにする
pictureBox1.SizeMode = PictureBoxSizeMode.Zoom;
// pictureBoxのサイズををパネルと同じにする
pictureBox1.Height = (panel1.Height * 2);
pictureBox1.Width = (panel1.Width * 2);
// pictureBoxの背景色を黒にする
pictureBox1.BackColor = Color.Black;
// 画像を読み込む
pictureBox1.Image = Image.FromFile(@"C:\写真\dog.jpg");
// パネルのスクロールバーをオートで表示する
panel1.AutoScroll = true;
// トラックバーの最小値を設定する
trackBar1.Minimum = 0;
// トラックバーの最大値にpictureBoxの幅(800)を設定する
trackBar1.Maximum = pictureBox1.Width;
// トラックバーの位置を中央にする(最大値/2)
trackBar1.Value = pictureBox1.Width / 2;
// トラックバーを25目盛り刻みにする(最大値/25)
trackBar1.TickFrequency = pictureBox1.Width / 25;
}
}
}
実行結果
画面初期表示です。
縮小表示です。
拡大表示です。
それでは、また!