퇴근5분전


 훈스 C#게시판에 올라온 질문중 ListView 컬럼을 동적으로 처리 할수 있는가에 대한 문의.

해당 컬럼을 직접 제어 할수 있는 속성은 없었고 컬럼 자체를 삭제, 추가 등으로 적용이가능하였다. 이때 Index위치가
바뀌는 적절한 Index 셋팅하는 로직도 추가되면 좋을듯 한다. 


/*
 콤보 1개, ListView 1개

 ListView.View = Detail;   컬럼은 그냥 디자이너에서 추가!

콤보에 Items 에는 ListView에 사용한 컬럼명을 등록함.

아래 소스는 콤보 선택시 선택된 ListView 컬럼을 뺌으로써 보이지 않게 처리 할수 있음.

*/
 public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        ColumnHeader oldch = null;

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (oldch != null)
            {
                listView1.Columns.Add(oldch);
                oldch = null;
            }
           oldch = listView1.Columns[Convert.ToInt16(comboBox1.SelectedItem)];
           listView1.Columns.Remove(oldch);
        }
    }