我試圖複製並粘貼部分列表。不幸的是,當從剪貼板粘貼時,條件查找存儲的數據,但是當分配給變量時,它仍然等於空。 這是我的代碼列表和列表項。c#粘貼列表<MyObj>返回null
public class ListCanvasBlocks : List<MyBlock>
{
public List<MyBlock> MyCopySelectedObj()
{
var x = new List<MyBlock>();
x.AddRange(this.Where(z => z.IsSelected));
return x;
}
}
[Serializable]
public class MyBlock
{
public MyBlock(Rectangle rect, BlocksData.Shape shape,int id)
{
Rect = rect;
Shape = shape;
Text = BlocksData.Text(Shape);
ID = id;
}
public string Text;
public bool IsSelected { get; set; } = false;
public bool IsLocked = false;
public int ID{ get; set; }
public Point PointInput;
public Point PointOutput1, PointOutput2;
public Rectangle Rect;
public SolidBrush BackColor;
public Color FontColor;
public int FontSize;
public BlocksData.Shape Shape{get;set;}
}
,這是當我按下CTRL我做什麼+ C/V
public void Copy()
{
Clipboard.Clear();
Clipboard.SetData("ListCanvasBlocks", _canvObj.MyCopySelectedObj());
}
public void Paste()
{
if (Clipboard.ContainsData("ListCanvasBlocks"))
{var test = (ListCanvasBlocks)Clipboard.GetData("ListCanvasBlocks");}
}
狀況的粘貼方法返回true,但可變測試仍然是空後分配新建分配FY
BlockData.Shape i s枚舉
我花了一段時間才明白,因爲他說測試是空的,而不是拋出異常:(或者他可以將GetData的結果投給列表。 –
hoodaticus
我之前嘗試過,但我確實再次嘗試。 ,而粘貼仍然分配null.Worst的情況是,我無法驗證問題是否與複製或粘貼。我知道只有在剪貼板格式兼容 – Robert
我終於發現一個問題 問題是在SolidBrush當它被複制時,不幸的是,當你粘貼時,我們得到null。你知道如何解決它嗎? – Robert