2015-07-13 3 views
1

Я создал пользовательскую панель задач с несколькими входами на ней. Одним из входов является текстовое поле.VSTO Получить диапазон Excel и положить в текстовое поле

Что я хочу сделать, это нажать на текстовое поле, а затем перетащить выделение диапазона ячеек и установить диапазон в текстовое поле.

Например, диалоговое окно Условное форматирование имеет эту функцию.

Какое событие я могу использовать, если я перехожу из своей настраиваемой области задач в Excel?

enter image description here

ответ

2

В вашей безрежимной форме, просто добавьте обработчик события к событию WorkSheet.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; 
    } 

} 

Надеется, что это помогает

+0

Потрясающе, спасибо. – Jack

Смежные вопросы