반응형

* C# Listview 데이터 조회 BeginUpdate , EndUpdate 예제

 

Main

 

-사용한 컨트롤: Button 2개, Listview 1개

 

전체 소스 코드

Form1.cs

 

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 CSharp_Listview_begin_end
{
    public partial class Form1 : Form
    {
        DateTime dtStart;

        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //ListView Search
            listView1.Items.Clear();

            dtStart = DateTime.Now;

            for (int i = 0; i < 30000; i++)
            {
                ListViewItem lvi = new ListViewItem();
                lvi.Text = (i + 1).ToString();
                lvi.SubItems.Add("TEST " + (i + 1).ToString());
                listView1.Items.Add(lvi);
            }

            MessageBox.Show(After_Time(DateTime.Now, dtStart).ToString() + " 초");

        }

        private void button2_Click(object sender, EventArgs e)
        {
            //ListView Search Begin End Update
            listView1.Items.Clear();

            dtStart = DateTime.Now;

            listView1.BeginUpdate();
            for (int i = 0; i < 30000; i++)
            {
                ListViewItem lvi = new ListViewItem();
                lvi.Text = (i + 1).ToString();
                lvi.SubItems.Add("TEST " + (i + 1).ToString());
                listView1.Items.Add(lvi);
            }
            listView1.EndUpdate();

            MessageBox.Show(After_Time(DateTime.Now, dtStart).ToString() + " 초");

        }
        private double After_Time(DateTime dtNow, DateTime dtBefore) 
        { 
            TimeSpan ts = dtNow - dtBefore; 
            return ts.TotalSeconds; 
        }

    }
}

 

 

*예제 결과

 

- Begin End 사용하기 전

- Begin End 사용 후

반응형
반응형

* C# 움직이는 라벨 만들기 예제...

 

Main

 

-사용한 컨트롤 : Label 1 개, Panel 1개, Timer 1개

 

전체 소스 코드

Form1.cs

 

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 CSharp_MoveLabel
{
    public partial class Form1 : Form
    {
        int iLocationX = 1;
        int iLocationY = 0;
        bool bCheck = true;      //true 앞으로 false 뒤로

        int iSpeed = 5;
        int iOffset = 10;

        public Form1()
        {
            InitializeComponent();

            iLocationY = (panel1.Height - panel1.Location.Y) / 2;
            Point p = new Point(iLocationX, iLocationY);
            label1.Location = p;

        }

        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            timer1.Start();

        }

        protected override void OnClosed(EventArgs e)
        {
            base.OnClosed(e);

            timer1.Stop();
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            //앞으로
            if (bCheck)
            {
                int iMove = iLocationX + label1.Width + iOffset ;
                int iEnd = panel1.Width ;

                if (iMove <= iEnd)
                {
                    iLocationX += iSpeed;
                    Point p = new Point(iLocationX, iLocationY);
                    label1.Location = p;
                }
                //끝지점에 도달 했으면...
                else
                {
                    bCheck = false;
                }

            }
            //뒤로
            else
            {
                //처음으로 다시 왔으면...
                if (iLocationX <= panel1.Location.X )
                {
                    bCheck = true;
                }
                else
                {
                    iLocationX -= iSpeed;
                    Point p = new Point(iLocationX, iLocationY);
                    label1.Location = p;
                }
            }
           
        }
    }
}

 

 

*예제 결과

 

 

반응형
반응형

* C# Listview 에 Button, Progressbar, TextBox Control 삽입 예제...

 

Main

 

-사용한 컨트롤 : Button 1개, Listview 1개

 

전체 소스 코드

Form1.cs

 

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 CSharp_ListView
{
    public partial class Form1 : Form
    {
        //컨트롤 해제 변수...
        List<Control> ltControl = new List<Control>();

        public Form1()
        {
            InitializeComponent();

        }

        void ControlDispose()
        {
            for (int iCount = 0; iCount < ltControl.Count; iCount++)
            {
                ltControl[iCount].Dispose();
            }

            if (ltControl.Count > 0)
            {
                ltControl.Clear();
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            lvMain.Groups.Clear();
            lvMain.Items.Clear();

            ControlDispose();

            ListViewItem lvi = new ListViewItem();

            lvi.Text = "000";
            lvi.SubItems.Add("111");
            lvi.SubItems.Add("222");
            lvi.SubItems.Add("333");

            lvMain.Items.Add(lvi);

            //객체를 어디에 담았다가 Dispose() 해주기...
            //Control In 할 객체 만들기...
            ProgressBar pb = new ProgressBar();
            pb.Minimum = 0;
            pb.Maximum = 100;
            pb.Value = 50;
            pb.Parent = lvMain;
            //서브 아이템 얻어오기
            ListViewItem.ListViewSubItem ps = null;
            ps = lvMain.Items[0].SubItems[0];
            //그리기
            Rectangle rt = new Rectangle();
            rt = ps.Bounds;
            pb.SetBounds(rt.X, rt.Y, 100, rt.Height);

            ltControl.Add(pb);

            Button bt = new Button();
            bt.Text = "In Button1";
            bt.Click += new EventHandler(bt_Click);
            bt.Parent = lvMain;
            //서브 아이템 얻어오기
            ListViewItem.ListViewSubItem ps2 = null;
            ps2 = lvMain.Items[0].SubItems[1];
            //그리기
            Rectangle rt2 = new Rectangle();
            rt2 = ps2.Bounds;
            bt.SetBounds(rt2.X, rt2.Y, rt2.Width, rt2.Height+6);

            ltControl.Add(bt);

            Button bt2 = new Button();
            bt2.Text = "In Button2";
            bt2.Click += new EventHandler(bt_Click);
            bt2.Parent = lvMain;
            //서브 아이템 얻어오기
            ListViewItem.ListViewSubItem ps3 = null;
            ps3 = lvMain.Items[0].SubItems[2];
            //그리기
            Rectangle rt3 = new Rectangle();
            rt3 = ps3.Bounds;
            bt2.SetBounds(rt3.X, rt3.Y, rt3.Width, rt3.Height+6);

            ltControl.Add(bt2);

            TextBox tb = new TextBox();
            tb.Text = "In TextBox";
            tb.Parent = lvMain;
            //서브 아이템 얻어오기
            ListViewItem.ListViewSubItem ps4 = null;
            ps4 = lvMain.Items[0].SubItems[3];
            //그리기
            Rectangle rt4 = new Rectangle();
            rt4 = ps4.Bounds;
            tb.SetBounds(rt4.X, rt4.Y, rt4.Width, rt4.Height);

            ltControl.Add(tb);

        }

        void bt_Click(object s, EventArgs e)
        {
            Button bt = s as Button;
            MessageBox.Show(bt.Text);
        }

    }
}

 

 

*예제 결과

 

 

 

https://kdsoft-zeros.tistory.com/211

 

[VBNET] [Control] Listview - Button, Progressbar, TextBox 컨트롤 삽입

* VBNET Listview 에 Button, Progressbar, TextBox Control 삽입 예제... -사용한 컨트롤 : Button 1개, Listview 1개 전체 소스 코드 Form1.vb Public Class Form1 Dim ltControl As List(Of Control) = New Li..

kdsoft-zeros.tistory.com

 

반응형
반응형

* C# Listview 컨트롤에 그룹화 항목 만들기 예제...

 

Main

 

- 사용한 컨트롤 : Button 1개 , Listview 1개

  Listview 에 Columns -> col item 4개를 추가 해 줍니다.

 

전체 소스 코드

Form1.cs

 

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 CSharp_ListView
{
    public partial class Form1 : Form
    {

        public Form1()
        {
            InitializeComponent();

        }

        private void button1_Click(object sender, EventArgs e)
        {
            lvMain.Groups.Clear();
            lvMain.Items.Clear();

            ListViewGroup lg = new ListViewGroup("Group1");
            ListViewGroup lg2 = new ListViewGroup("Group2");
            lvMain.Groups.Add(lg);
            lvMain.Groups.Add(lg2);


            ListViewItem lvi = new ListViewItem();

            lvi.Text = "Group1 TEST";
            lvi.SubItems.Add("ddd");
            lvi.SubItems.Add("asdfaf");
            lvi.SubItems.Add("sdaffasf");


            ListViewItem lvi2 = new ListViewItem();

            lvi2.Text = "Group2 TEST";
            lvi2.SubItems.Add("ddd");
            lvi2.SubItems.Add("asdfaf");
            lvi2.SubItems.Add("sdaffasf");

            //먼저 아이템을 넣고
            lvMain.Items.Add(lvi);
            lvMain.Items.Add(lvi2);

            //그 아이템을 그룹화 함...
            lvMain.Groups[0].Items.Add(lvi);
            lvMain.Groups[1].Items.Add(lvi2);

           
        }

    }
}

 

 

*예제 결과

 

반응형
반응형

* C# EXE File icon 가져오기 예제...

 

Main

 

- 사용한 컨트롤: Button 2개, Label 1개

 

전체 소스 코드

Form1.cs

 

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 CSharp_EXEIcon
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //File Open

            OpenFileDialog ofd = new OpenFileDialog();

            ofd.Filter = "EXE File(*.exe) | *.exe";

            if (ofd.ShowDialog() == DialogResult.OK)
            {
                label1.Text = ofd.FileName;
            }

        }

        private void button2_Click(object sender, EventArgs e)
        {
            //icon Save
            //파일이 아니라면...
            if (!System.IO.File.Exists(label1.Text)) return;

            //exe file iCon get
            Icon icn = Icon.ExtractAssociatedIcon(label1.Text);

            //Image Save
            Image img = Image.FromHbitmap(icn.ToBitmap().GetHbitmap());
            img.Save("c:\\Test.ico");
            img.Dispose();

            MessageBox.Show("icon Image Save Success...");

        }
    }
}

 

 

*예제 결과

 

 

 

반응형
반응형

*C# App.Configuration 파일 추가 방법 및 파일 추가 후 key , value 값 읽기 예제...

 

Main

 

- 사용한 컨트롤 : Button 1개, ListView 1개

 

 

- App.Configuration 파일 추가

 

 

 

- 아래의 그림과 같이 key 값 및 value 값 작성 후 저장

 

 

 

전체 소스 코드

Form1.cs

 

- App.Configuration 을 읽기 위해 System.Configuration 을 추가 해 줍니다.

 

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;

using System.Configuration;

namespace CSharp_AppConfiguration
{
    public partial class Form1 : Form
    {
        List<string> ltKey = new List<string>();

        public Form1()
        {
            InitializeComponent();

            //key 값 추가...
            ltKey.Add("TEST");
            ltKey.Add("TEST2");
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //App Configuration Read...

            foreach (string str in ltKey)
            {
                ListViewItem lvi = new ListViewItem();

                lvi.Text = str;
                lvi.SubItems.Add(ConfigurationSettings.AppSettings[str].ToString());

                listView1.Items.Add(lvi);

            }

        }
    }
}

 

 

 

*예제 결과

 

 

반응형
반응형

* C# Regex 를 이용한 간단한 이메일 주소 체크 예제...

 

Main

 

- 사용한 컨트롤 : TextBox 1개, Button 1개, Label 1개

 

전체 소스 코드

Form1.cs

 

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;


using System.Text.RegularExpressions;

namespace CSharp_IsEmailText
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            bool bEmail = Regex.IsMatch(textBox1.Text , @"[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?");

            if (bEmail)
            {
                label1.Text = "이메일 주소가 맞습니다.";
            }
            else
            {
                label1.Text = "이메일 주소가 아닙니다.";
            }
            
        }
    }
}

 

 

* 예제 결과

 

 

반응형
반응형

* C# String 을 이진수로 이진수를 String 으로 변환 예제...

 

 

- 사용한 컨트롤 : Button 2개, Label 2개, TextBox 1개

 

전체 소스 코드

Form1.cs

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 CSharp_StringTo2진수
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == "") return;
            //String To 2진수
            byte[] btBytes = UnicodeEncoding.Unicode.GetBytes(textBox1.Text );
            string strbinary = string.Empty;

            foreach (byte b in btBytes)
            {
                // byte를 2진수 문자열로 변경
                string strTmp = Convert.ToString(b, 2);
                strbinary += strTmp.PadLeft(8, '0');
            }

            label1.Text = strbinary; 
        }

        private void button2_Click(object sender, EventArgs e)
        {
            //2진수 To String
            if (label1.Text == "") return;

            int ibytes = label1.Text.Length  / 8;
            byte[] btOutBytes = new byte[ibytes];

            for (int i = 0; i < ibytes; i++)
            {
                // 8자리 숫자 즉 1바이트 문자열 얻기
                string strBin = label1.Text.Substring(i * 8, 8);
                // 2진수 문자열을 숫자로 변경
                btOutBytes[i] = (byte)Convert.ToInt32(strBin, 2);
            }

            // Unicode 인코딩으로 바이트를 문자열로
            string strResult = UnicodeEncoding.Unicode.GetString(btOutBytes);
            label2.Text = strResult;
        }
    }
}

 

 

* 예제 결과

 

반응형

+ Recent posts