C# TrackBarの使い方

C# サンプルコード プログラミング

概要説明

TrackBar は 横棒の中央につまみがあって、そのつまみを左右に動かして調整するバーです。

こんな感じのものです。

 

このTrackBarはつまみが動いたときにイベントが発生します。

そのイベントでTrackBarの値を取り出し、画像のサイズを調整したりとかに使えます。

使い方としてはTrackBarに

・最小値

・最大値

・TrackBarの値(トラックバーの位置)

・つまみを動かしたときに動く距離

を設定します。

あとは、ValueChangedイベントが発生したときに、TrackBarの値を使って処理します。

画像ファイルをPictureBoxに読み込み、そのPictureBoxのサイズを変更するサンプルを作成しました。

こんな感じです。

使用した部品は3点です。

No部品name
Panelpanel1
PictureBoxpictureBox1
TrackBartrackBar1

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;
        }
    }
}

実行結果

画面初期表示です。

縮小表示です。

拡大表示です。

それでは、また!

コメント

タイトルとURLをコピーしました