본문 바로가기
개발언어/C#

[C#] ListView 버튼 및 컨트롤 추가

by 창용이랑 2021. 8. 10.
728x90

https://www.codeproject.com/Articles/9188/Embedding-Controls-in-a-ListView

 

Embedding Controls in a ListView

How to use arbitrary controls in ListView cells.

www.codeproject.com

 

해당소스의 ListViewEx.cs 파일을 복사해서 프로젝트에 추가하고(최상단, 폴더에넣으면 오류나더라)

폼에서 생성한 ListView의 Parent를 ListViewEx로 수정해준다.

 

for (int iCount = 0; iCount < 50; iCount++)
{
	string sName = "안녕하세요" + iCount.ToString();
	string sPhone = "02-1234-56" + iCount.ToString();
	lvi = new ListViewItem();

	int num = iCount + 1;
	lvi.Text = num.ToString();
	lvi.Font = new Font("굴림", 15);
	lvi.SubItems.Add(sName);
	lvi.SubItems.Add("");
	lvi.SubItems.Add("");

	listView1.Items.Add(lvi);

	/-----------------------------

	TextBox txtbox = new TextBox();
	txtbox.Text = sPhone;
	txtbox.Font = new Font("굴림", 15);
	listView1.AddEmbeddedControl(txtbox, 2, iCount);
    
    /-----------------------------
    
	Button btn = new Button();
	btn.Text = "전화걸기" + iCount.ToString();
	btn.Visible = true;
	btn.Tag = sPhone;
	btn.UseVisualStyleBackColor = true;
	//btn.BackColor = Color.Blue;
	//btn.ForeColor = Color.Red;
	btn.Font = new Font("굴림", 15);

	btn.Click += new EventHandler(bt_Click);
	listView1.AddEmbeddedControl(btn, 3, iCount);                
}


void bt_Click(object sender, EventArgs e)
{
	Button bt = sender as Button;
	MessageBox.Show(bt.Tag.ToString());
	
	//var button = (Button)sender;
	//Console.WriteLine(button.Tag);
}

 

 

ListViewEmbeddedControls_src.zip
0.02MB