본문 바로가기

   
Programming/Winform

스크롤바, TrackBar, 픽쳐박스

반응형

윈폼 : BMP 방식: 점+점
WPF : 벡터 방식: 점+점 = 선


using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

 

namespace Start

{

       public partial class ScrollBar : Form

       {

             private Label lb;

 

             public ScrollBar()

             {

                    InitializeComponent();

                    lb = new Label();

             }

 

             private void button1_Click(object sender, EventArgs e)

             {

                    label1.Text = vScrollBar1.Value.ToString();

                    label2.Text = hScrollBar1.Value.ToString();

             }

 

             private void vScrollBar1_Scroll(object sender, ScrollEventArgs e)

             {

                    label1.Text = vScrollBar1.Value.ToString();

             }

 

             private void hScrollBar1_Scroll(object sender, ScrollEventArgs e)

             {

                    label2.Text = hScrollBar1.Value.ToString();

             }

 

             private void ScrollBar_Load(object sender, EventArgs e)

             {

                   

                    lb.AutoSize = true;

 

                    for (int i = 0; i < 100; i++)

                    {

                           lb.Text += "안녕하세요" + i.ToString() + "\r\n";

                    }

                    panel1.Controls.Add(lb);

 

                    //라벨의 높이에 따라 스크롤바의 최대값 설정

                    vScrollBar2.Maximum = lb.Height;

             }

 

             private void vScrollBar2_Scroll(object sender, ScrollEventArgs e)

             {

                    //스크롤바를 내리면..

                    //라벨은? 올라간다? 내려간다?

                    //Location.Y값을 감소 = 스크롤바의 수치

                    //this.Text = vScrollBar2.Value.ToString();

                    this.lb.Location = new Point(0, -vScrollBar2.Value);

             }

       }

}

  트랙바 정확한 수치를 제공하기 위한것

 


using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

 

namespace Start

{

       public partial class TrackBar : Form

       {

             public TrackBar()

             {

                    InitializeComponent();

             }

 

             private void trackBar1_Scroll(object sender, EventArgs e)

             {

                    //0~10

                    this.Text = trackBar1.Value.ToString();

 

                    //불투명도(0~1)

                    this.Opacity = trackBar1.Value * 0.1;

 

                    ChangColor();

             }

 

             private void hScrollBar2_Scroll(object sender, ScrollEventArgs e)

             {

                    ChangColor();

 

             }

 

             private void ChangColor()

             {

                    this.BackColor = Color.FromArgb(hScrollBar1.Value, hScrollBar2.Value, hScrollBar3.Value);

             }

 

             private void hScrollBar3_Scroll(object sender, ScrollEventArgs e)

             {

                    ChangColor();

             }

 

             private void TrackBar_Load(object sender, EventArgs e)

             {

                    //폼로드

                    this.BackColor = Color.White;

 

                    //스크롤바 초기화 기본적으로 (0~100)

                    hScrollBar1.Maximum = 255;

                    hScrollBar2.Maximum = 255;

                    hScrollBar3.Maximum = 255;

 

                    hScrollBar1.Value = 255;

                    hScrollBar2.Value = 255;

                    hScrollBar3.Value = 255;

 

                    //트랙바 초기화(0~10)

                    trackBar1.Minimum = 1;//완전히 사라지지 않게

                    trackBar1.Value = 10;

             }

       }

}



외부이미지 추가 방법 : 현재 실행파일(exe)과 동일한 위치에 images폴더가 존재하고, 그 안에 이미지파일이 있음
*실행파일의 위치를 알아내기
 MessageBox.Show(Application.StartupPath);

 

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

 

namespace Start

{

       public partial class PicutreBox : Form

       {

             public PicutreBox()

             {

                    InitializeComponent();

             }

 

             private void PicutreBox_Load(object sender, EventArgs e)

             {

                    //동적으로 이미지 파일을 가져올때

                    MessageBox.Show(Application.StartupPath);

                    string path = Application.StartupPath + @"\img\back.png";

 

                    MessageBox.Show(path);

                    //Bitmap = *.bmp ?

                    //Bitmap : 비트맵 방식의 방식(래스터 이미지). 하나의 색상을 가지는 픽셀들이 모여서 이미지를 구성하는 방식

                    //bmp, gif, jpg, tiff..) 해상도가 달라지면 픽셀의 크기가 달라지기 떄문에 이미지 품질이 깨진다.

                    //벡터 방식 : 플래시. 일러스트레이터. 좌표에 관련된 수식을 기록. 해상도에 따른 품질의 변화가 없음. 아이콘, 일러                  스트. 수식을 기록. 해상도에 따른 품질의 변화가 없음. 아이콘, 일러스트. 세밀한 표시는 불가능

                    Bitmap img = new Bitmap(path);

                    //이미지 추상클래스가 하위 객체 비트맵을 사용하지 않아도 이미지 객체를 만들수 있다.

                    //Image img = Image.FromFile(path);

 

                    pictureBox1.Image = img;

             }

       }

}

 

  

반응형