728x90
출처 : m.blog.naver.com/jskimmail/221308645448
리스트뷰를 드래그앤드랍 만들기
중요속성.
AllowDrop = true
이벤트는
DragEnter : 드래그시 마우스포인터 변경
DragDrop : 그랍시 처리 이벤트
using System.Windows.Forms;
namespace DragAndDrop
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
IniList(); // listview 설정
}
private void IniList ()
{
listView1.View = System.Windows.Forms.View.Details; ;// 목록 형으로 보이기
listView1.CheckBoxes = true; // 체크박스가 있다 .
listView1.GridLines = true; // 그리드 라인을 보여준다.
listView1.FullRowSelect = true; // 선태은 행으로 하기.
listView1.AllowDrop = true; // drag and drop 허용
// drag and drop
this.listView1.DragDrop += new System.Windows.Forms.DragEventHandler(this.listView1_DragDrop);
this.listView1.DragEnter += new System.Windows.Forms.DragEventHandler(this.listView1_DragEnter);
// 컬럼 헤더 넣어주기.
ColumnHeader colHeader = null;
colHeader = new ColumnHeader();// 아이템 키
colHeader.Name = "key"; // 컬럼 키
colHeader.Text = "File"; // 컬럼 텍스트
colHeader.Width = (int)(listView1.Width * 0.9); // 컬럼 폭 90%
colHeader.TextAlign = HorizontalAlignment.Left; // 컬럼 정열
listView1.Columns.Add(colHeader); colHeader = null;
}
/// <summary>
/// 드랍하면 파일을 넣는다.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void listView1_DragDrop(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop))
{
string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
if (files.Length >= 1)
{
foreach (string file in files)
{
ListViewItem item = new ListViewItem(file);
listView1.Items.Add(item);
item = null;
}
}
}
}
/// <summary>
/// 드래그하면 마우스 포인터로 바꾼다.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void listView1_DragEnter(object sender, DragEventArgs e)
{
// If the data is a file or a bitmap, display the copy cursor.
if (e.Data.GetDataPresent(DataFormats.FileDrop))
{
e.Effect = DragDropEffects.Copy; //포인터
}
else
{
e.Effect = DragDropEffects.None;
}
}
}
}
'개발언어 > C#' 카테고리의 다른 글
[C#] Windows Forms 속성 (0) | 2021.04.12 |
---|---|
[C#] 개인키 인증서 (정리하기) (0) | 2021.04.02 |
[C#] config 파일을 AppData 폴더에 두고 설정값 읽기 및 쓰기 (0) | 2021.03.29 |
[C#] Static함수에서 Form의 Control 조작하는 방법 (0) | 2021.03.05 |
[C#] C#에서 멀티스레드에 안전한 구조 설계 (0) | 2021.02.17 |