목록보기에 복사 붙여 넣기를 추가하는 쉬운 방법이 있습니까? 아니면 대신 DataGridView로 전환해야합니까?복사하여 붙여 넣기 목록보기
내 응용 프로그램은 주소록과 비슷하지만 전자 메일, 숫자 등이 들어있어 복사 붙여 넣기가 유용합니다.
목록보기에 복사 붙여 넣기를 추가하는 쉬운 방법이 있습니까? 아니면 대신 DataGridView로 전환해야합니까?복사하여 붙여 넣기 목록보기
내 응용 프로그램은 주소록과 비슷하지만 전자 메일, 숫자 등이 들어있어 복사 붙여 넣기가 유용합니다.
그냥 KeyDown
에 대한 이벤트 처리기에 넣어 설명서를 복사 및 붙여 넣기를 할 매우 어렵지 않다 (또는 어쩌면 KeyPress
기억 할 수는 없지만 상당히 확실히 그들 중 하나입니다)와 e.KeyCode
보고 키를 누르면 내용을 확인 e.Control
이 참인지 확인하십시오. x
, c
또는 v
중 하나 인 경우 클립 보드에서 읽고 쓰려면 Clipboard.SetText
또는 Clipboard.GetText
을 호출하십시오.
Clipboard
클래스의 MSDN 설명서는 here을 참조하십시오.
복사 및 붙여 넣기를 사용하여 상황에 맞는 메뉴를 추가하여 ListView에 추가하여 완성시킬 수 있습니다.
예는 아래 클립 보드 명령 사본 Ctrl 키-C, 복사 모든 선택된 행에서 두 번째 열의 값 처리 :
private void resultsListView_KeyUp(object sender, KeyEventArgs e)
{
if (sender != resultsListView) return;
if (e.Control && e.KeyCode == Keys.C)
CopySelectedValuesToClipboard();
}
private void CopySelectedValuesToClipboard()
{
var builder = new StringBuilder();
foreach (ListViewItem item in resultsListView.SelectedItems)
builder.AppendLine(item.SubItems[1].Text);
Clipboard.SetText(builder.ToString());
}
참조 :
좋은 해결책, 나는 단지'KeyDown' 이벤트로 그렇게해야했습니다. 'KeyUp'은 작동하지 않았습니다. 왜냐하면'c'를 누르면 ListBox의 첫 번째 항목이'c'로 시작하여 자동으로 다중 선택을 단일 항목으로 렌더링하기 때문입니다. – derFunk
내 요구 사항은 일련 번호 목록을 클립 보드에 복사하는 버튼을 추가하는 것이 었습니다. 나는 정상적인 방식으로 버튼을 추가 한 후 다음 방법을 추가 :
private void btnClipboard_Click(object sender, EventArgs e)
{
String clipText = string.Empty;
foreach (ListViewItem item in lstSerials.Items)
{
clipText += item.SubItems[0].Text;
clipText += Environment.NewLine;
}
if (!String.IsNullOrEmpty(clipText))
{
Clipboard.SetText(clipText);
}
}
그의 문제 셀을 선택하기위한 몇 가지 참신한 트릭이 없으면 난 단지, 전체 행을 복사하는 관리이다. – Zubirg
@ Zubirg : 예, ListView에 셀이 없다는 것을 잊었습니다. DataGridView로 전환하는 것이 더 쉬울 수도 있습니다. 그러나'ListView'를 고집하고 싶다면 클릭 한 하위 항목을 계산하고 그 하위 항목의'BackColor'를 변경하여 선택한 것으로 보이게하기 위해'Click' 및'MouseDown' 이벤트를 처리하는 것과 같은 일을 할 수 있습니다 그런 다음 해당 하위 항목에 대한 복사 및 붙여 넣기를 처리 할 수 있습니다. Item에 'UseItemStyleForSubItems = false;'를 설정해야합니다. 그렇지 않으면 하위 항목에 색상이 표시되지 않습니다. –