DatagridviewCell.Datagridview
属性是只读的。同样适用于具有Datagridview
引用的其他datagridview元素,如行和列。然而,当您从datagridview添加/删除元素时,此属性在幕后正确设置,因此父数据网格视图对其元素的引用之间从不存在任何不一致,反之亦然。
datagridview如何实现这一目标?我正在尝试自己做类似的事情。我所知道的唯一“技巧”是将集合定义放在类定义中,反之亦然,这样元素或集合就可以访问其他私有字段,但是查看datagridview名称空间似乎并非如此。
答案 0 :(得分:0)
DateGridView正在使用“内部”访问修饰符。您可能知道,有4种不同的访问修饰符。
public string MyPetPeeve
private string MyPetPeeve
protected string MyPetPeeve
internal string MyPetPeeve
以下是访问修饰符行为的快速摘要:
公开:任何想要了解的人都可以访问MyPetPeeve。
private:MyPetPeeve只能从包含它的类或结构中访问。
protected:包含它的类或结构可以访问MyPetPeeve。 PLUS,从包含类的MyPetPeeves派生的任何类。
internal:MyPetPeeve可供同一程序集中存在的任何类或结构访问。例如,DataGridView存在于System.Windows.Forms程序集中,因此在System.Windows.Forms中找到的任何类或结构都可以更改DatagridviewCell.Datagridview属性。对于System.Windows.Forms以外的任何其他人,在这种情况下:你,它似乎是私有的。