이것은 2 자입니다.C# 잘라 내기/복사 및 붙여 넣기 개체
처음에는 복사 및 붙여 넣기 작업의 붙여 넣기 부분이 작동하는 데 시간이 걸리고 있습니다.
정보를 클립 보드로 복사하는 방법이 있습니다. 완벽하게 작동합니다.
private void CopyData(string format, object data, string text)
{
bool addedData = false;
DataObject copyData = new DataObject();
if (!string.IsNullOrEmpty(text))
{
copyData.SetData(DataFormats.Text, text);
addedData = true;
}
if (!string.IsNullOrEmpty(format) && data != null)
{
copyData.SetData(format, false, data);
addedData = true;
//this is only for testing
object obj = null;
if (copyData.GetDataPresent(format))
obj = (object)copyData.GetData(format);
}
if (addedData)
Clipboard.SetDataObject(copyData, true);
}
데이터가 추가되었는지 확인하면 객체 (obj)가 null이 아닙니다.
그러나 동일한 형식 키를 사용하여 다른 방법으로 데이터를 붙여 넣을 때마다 매번 null이 발생합니다.
private void PasteFromClipboard()
{
object obj = null;
IDataObject paste = null;
if (Clipboard.GetDataObject().GetDataPresent("mydatatype"))
obj = (object)Clipboard.GetDataObject().GetData("mydatatype");
else
return;
if (obj == null)
throw new NullReferenceException("Could not gather information from the
}
나는 내가 생각할 수있는 모든 노력을하고 그냥 이해가되지 않습니다. DataObject가 보유한 모든 형식 키를 캡처하기 위해 문자열 배열을 작성했으며 "mydatatype"이 첫 번째 문자열이었습니다. 캐스팅하지 않고 캐스팅하지 않고 시도했습니다. (Clipboard.GetDataObject().GetData("mydatatype") as object)
을 사용하고 있습니다. 저는 메모장으로 가서 복사 한 텍스트를 붙여 넣을 수 있기 때문에 거기에 데이터가 있다는 것을 알고 있습니다.
왜 한 가지 방법으로 데이터를 가져올 수 있지만 다른 데이터를 가져올 수 없습니까?
두 번째로 컷을 만드는 방법을 궁금합니다. & 두 창 사이에 작업 붙여 넣기. Excel과 같은 것을 생각하고 있는데, 텍스트 만 붙여 넣으면 데이터가 남아 있지만 개체를 붙여 넣으면 소스가 삭제됩니다.
감사합니다. Patrick.
나는 데이터 객체의 데이터 유형의 배열을 받았을 때 내가 테스트를 당겨 테스트는 데이터의 텍스트 버전을 당겨 않습니다. "mydatatype"형식은 Copy 메서드의 "format"로컬 변수로 전달되지만 문자열을 하드 코딩하여 차이가 있는지 확인합니다. 현재 응용 프로그램 내에서만 수행되므로 "mydatatype"의 Cutting & Coping을 구현하기 위해 자체 클래스를 만들었으므로 다른 응용 프로그램에서는이 데이터를 사용하지 않습니다. – Patrick
잘 하드 코딩 형식을 변경하지 못했습니다, 나는 또한 데이터를 추가하고 어떤 유형의 "개체", 어떤 차이를 만들지 않았다. 오, 잘 생각해 줘서 고마워. 당분간 나는 사용자 정의 클래스 솔루션을 고수 할 것입니다. – Patrick