winform 응용 프로그램을 개발 중이며 Datagridview를 사용하여 레코드를 표시했습니다.복사/붙여 넣기 기능이있는 읽기 전용 DataGridView?
이제는 셀 내용을 읽기 전용으로해야하지만 동시에 최종 사용자가 셀 내용을 클립 보드로 복사하고 편집하지 못하도록해야합니다.
해결책이 있으면 제안 해주세요. 세포 및 CTRL + V에서
winform 응용 프로그램을 개발 중이며 Datagridview를 사용하여 레코드를 표시했습니다.복사/붙여 넣기 기능이있는 읽기 전용 DataGridView?
이제는 셀 내용을 읽기 전용으로해야하지만 동시에 최종 사용자가 셀 내용을 클립 보드로 복사하고 편집하지 못하도록해야합니다.
해결책이 있으면 제안 해주세요. 세포 및 CTRL + V에서
DataGridView.ReadOnly = True;
DataGridView.SelectionMode = DataGridViewSelectionMode.CellSelect;
그런 다음 사용자가 선택할 수있는 데이터 (문자열)
당신이 코드를 시도 할 수 있습니다 클립 보드에 넣어 -에 기반을 DataGridViewCell.OnKeyPress
링크 : http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridviewcell.onkeypress.aspx
private void DataGridViewCell_KeyPress(KeyPressEventArgs e, int index)
{
if ((e.Key == Key.LeftCtrl || e.Key == Key.RightCtrl)
&& e.Key == Key.C)
{
//You can get your cell based on index
Clipboard.SetText(.....);
}
}
DataGrid에 ContextMenu를 추가하고 복사 및 붙여 넣기 항목을 추가하고 Ctrl + V 및 Ctrl + C 바로 가기를 추가 할 수도 있습니다
그런 다음 이벤트를 처리합니다. 원하는 경우 메뉴를 Visible = false로 설정할 수 있으며 마우스 오른쪽 단추로 클릭해도 메뉴가 표시되지 않지만 바로 가기는 계속 작동합니다.
개인적으로 나는 오른쪽 클릭 메뉴가 DataGrid에 추가되지만 사용자의 전화는 좋아합니다.
당신은 XAML에 추가 할 수 있습니다 ClipboardCopyMode = "IncludeHeader"/ "ExcludeHeader"/ "NONE"
멋진 대답을! 나는이 해결책을 가장 좋아한다. 원한다면 기본'SelectionMode' 값 ('RowHeaderSelect')이 정상적으로 작동하므로 두 번째 행을 건너 뛸 수 있습니다. 'FullRowSelect'와 같은 것으로 설정하면 잘 작동하지 않습니다;) –