Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 获取Excel范围并放入文本框_C#_.net_Excel_Winforms_Vsto - Fatal编程技术网

C# 获取Excel范围并放入文本框

C# 获取Excel范围并放入文本框,c#,.net,excel,winforms,vsto,C#,.net,Excel,Winforms,Vsto,我创建了一个自定义任务窗格,上面有一些输入。其中一个输入是文本框 我要做的是单击文本框,然后拖动并选择一个单元格区域,并将该区域设置为文本框 例如,“条件格式”对话框窗口具有此功能 如果从自定义任务窗格更改为Excel,我将使用什么事件 在无模式表单中,只需将事件处理程序添加到工作表。SelectionChanged事件 大概是这样的: public partial class Form1 : Form { Microsoft.Office.Interop.Excel.Worksheet

我创建了一个自定义任务窗格,上面有一些输入。其中一个输入是文本框

我要做的是单击文本框,然后拖动并选择一个单元格区域,并将该区域设置为文本框

例如,“条件格式”对话框窗口具有此功能

如果从自定义任务窗格更改为Excel,我将使用什么事件


在无模式表单中,只需将事件处理程序添加到工作表。SelectionChanged事件

大概是这样的:

public partial class Form1 : Form
{
    Microsoft.Office.Interop.Excel.Worksheet ws;

    public Form1()
    {
        InitializeComponent();
    }

    protected override void OnLoad(EventArgs e)
    {
        base.OnLoad(e);
        ws = Globals.ThisAddIn.Application.ActiveSheet;
        ws.SelectionChange += ws_SelectionChange;            

    }

    void ws_SelectionChange(Microsoft.Office.Interop.Excel.Range Target)
    {
        this.textBox1.Text = Target.Address; 
    }

    protected override void OnClosed(EventArgs e)
    {
        base.OnClosed(e);
        ws.SelectionChange -= ws_SelectionChange;
    }

}

希望这有帮助

我也有同样的问题,这篇文章很老了,我制作了一个无模式表单来解决这个问题,但是你是如何解决这个问题的?就像我做的不模仿excel默认值一样。@Atreyagarav你是什么意思?接受的答案应该符合您的需要。没有什么区别,1)无模式表单没有模式表单那样的返回功能,因此我无法使用它在运行时轻松返回范围。(我必须通过定制无模式表单来克服这一问题,以便独立完成所有工作)2)它不会模仿excel的默认范围输入,因为它会更改用户的选择;excel有一个虚线选择,它不会改变以前的选择与excel不同,excel会在拖动鼠标时实时更新,这种方式仅在选择拖动完成时插入值。