C#vsto拖放到单元格,在删除之前获取单元格对象

时间:2015-07-10 07:25:47

标签: c# excel vsto

以下代码效果很好。我可以从列表视图中拖动一个项目并将其放入单元格中。

private void treeView1_MouseMove(object sender, MouseEventArgs e)
{
     if (e.Button == MouseButtons.Left)
    {
        if (treeView1.SelectedNode != null)
        {
             treeView1.DoDragDrop(DragData.ToString(), DragDropEffects.Copy); 
        }
    }
}

我的问题是我是否有可能根据我将删除的单元格更改DragDropEffects。

例如,不允许将项目拖放到单元格[A1],所以我希望DragDropEffects可以是“没有”。当鼠标只在单元格[A1]上时,包括鼠标样式应该是不允许的标记。

希望我能找到一个写下面代码的地方。

private void mouse_on(Excel.Range targetRange){
    if(targetRange.Address == "A1"){
        DragDropEffects.None;
    }else{
        DragDropEffects.Copy;
    }
}

1 个答案:

答案 0 :(得分:0)

VSTO(也不是Excel)没有为此提供任何东西。

您可以尝试使用Range类的Locked属性来指示对象是否已锁定。如果对象被锁定,则此属性返回True;如果在保护工作表时可以修改对象,则返回False;如果指定的范围包含已锁定和未锁定的单元格,则返回Null。

Protect方法保护工作表,使其无法修改。

因此,您可以保护工作表,并将可以删除数据的区域的Locked属性设置为false。希望它有所帮助。