設為首頁收藏本站Access中國

Office中國論壇/Access中國論壇

 找回密碼
 注冊

QQ登錄

只需一步,快速開始

返回列表 發(fā)新帖
查看: 9185|回復: 4
打印 上一主題 下一主題

【補充】關(guān)于VSTO第四課:RIBBON概要

[復制鏈接]
跳轉(zhuǎn)到指定樓層
1#
發(fā)表于 2014-3-20 18:54:47 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
課程用需要用到的內(nèi)段代碼:

1、LAUNCHER
2、GALLERY
3、TASKPAN
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享分享 分享淘帖 訂閱訂閱
2#
 樓主| 發(fā)表于 2014-3-20 18:58:11 | 只看該作者
1、LAUNCHER

初始變量
  1.         private ThisAddIn addin;
  2.         private Excel.Application app;

  3.         private AutoSetForm autoSetForm;

  4.         private void Ribbon1_Load(object sender, RibbonUIEventArgs e)
  5.         {
  6.             addin = Globals.ThisAddIn;
  7.             app = addin.Application;

  8.             this.grpModeless1.DialogLauncher.ScreenTip =
  9.                 "ScreenTip\r\nScreenTip\r\n";
  10.             this.grpModeless1.DialogLauncher.SuperTip =
  11.                 "SuperTip\r\nSuperTip\r\n";
  12.         }
復制代碼

//模態(tài)
  1. private void grpModal_DialogLauncherClick(object sender, RibbonControlEventArgs e)
  2.         {
  3.             //獲得窗口
  4.             if (autoSetForm == null || autoSetForm.IsDisposed)
  5.             {
  6.                 autoSetForm = new AutoSetForm();
  7.             }

  8.             //顯示
  9.             autoSetForm.ShowDialog();
  10.         }
復制代碼

//非模
  1.         //非模態(tài),關(guān)聯(lián)EXCEL
  2.         private void grpModeless1_DialogLauncherClick(object sender, RibbonControlEventArgs e)
  3.         {
  4.             //獲得窗口
  5.             if (autoSetForm == null || autoSetForm.IsDisposed)
  6.             {
  7.                 autoSetForm = new AutoSetForm();
  8.             }

  9.             //關(guān)聯(lián)Excel窗口
  10.             IntPtr handel;
  11.             //獲得窗口句柄:方法一
  12.             handel = Process.GetCurrentProcess().MainWindowHandle;
  13.             //獲得窗口句柄:方法二
  14.             handel = new IntPtr(app.Hwnd);
  15.             //得到父窗口
  16.             NativeWindow win = NativeWindow.FromHandle(handel);

  17.             //顯示
  18.             autoSetForm.Show(win);
  19.         }
復制代碼

//非模態(tài),不關(guān)聯(lián)EXCEL
  1.         private void grpModeless2_DialogLauncherClick(object sender, RibbonControlEventArgs e)
  2.         {
  3.             //獲得窗口
  4.             if (autoSetForm == null || autoSetForm.IsDisposed)
  5.             {
  6.                 autoSetForm = new AutoSetForm();
  7.             }

  8.             //顯示
  9.             autoSetForm.Show();
  10.         }
復制代碼



3#
 樓主| 發(fā)表于 2014-3-20 18:59:13 | 只看該作者
2、GALLERY


加載
  1.         private void gaAuto_ItemsLoading(object sender, RibbonControlEventArgs e)
  2.         {
  3.             gaAuto.Items.Clear();

  4.             RibbonDropDownItem dd1 = this.Factory.CreateRibbonDropDownItem();
  5.             dd1.Tag = "G1";
  6.             dd1.Image = ResGallery.G1;
  7.             gaAuto.Items.Add(dd1);

  8.             RibbonDropDownItem dd2 = this.Factory.CreateRibbonDropDownItem();
  9.             dd2.Tag = "G2";
  10.             dd2.Image = ResGallery.G2;
  11.             gaAuto.Items.Add(dd2);

  12.             RibbonDropDownItem dd3 = this.Factory.CreateRibbonDropDownItem();
  13.             dd3.Tag = "G3";
  14.             dd3.Image = ResGallery.G3;
  15.             gaAuto.Items.Add(dd3);
  16.         }
復制代碼

觸發(fā)

  1.         private void gaAuto_Click(object sender, RibbonControlEventArgs e)
  2.         {
  3.             //獲得當前選項
  4.             string tag = gaAuto.SelectedItem.Tag;

  5.             //根據(jù)轉(zhuǎn)義的TAG標簽執(zhí)行代碼
  6.             switch (tag)
  7.             {
  8.                 case "G1":
  9.                     Process.Start(@"http://ctxi.cn/forum-375-1.html");
  10.                     break;
  11.                 case "G2":
  12.                     Process.Start(@"http://ctxi.cn/forum-379-1.html");
  13.                     break;
  14.                 case "G3":
  15.                     Process.Start(@"http://ctxi.cn/forum-378-1.html");
  16.                     break;
  17.                 default:
  18.                     break;
  19.             }
  20.         }
復制代碼



4#
 樓主| 發(fā)表于 2014-3-20 19:01:15 | 只看該作者
3、TASKPAN


定義
  1.         //定義屬性
  2.         private Tools.CustomTaskPane taskPanAuto;
  3.         public Tools.CustomTaskPane TaskPanAuto
  4.         {
  5.             get { return taskPanAuto; }
  6.         }

  7.         //在ThisAddin中初始化TASKPAN控件
  8.         private void ThisAddIn_Startup(object sender, System.EventArgs e)
  9.         {
  10.             TaskPanAutoView taskPanAutoView = new TaskPanAutoView();
  11.             this.taskPanAuto = this.CustomTaskPanes.Add(taskPanAutoView, "Auto");

  12.             this.taskPanAuto.Width = 300;
  13.             this.taskPanAuto.VisibleChanged += taskPanAuto_VisibleChanged;
  14.         }
復制代碼

觸發(fā)-TASKPAN

  1.         //觸發(fā):TASKPAN
  2.         void taskPanAuto_VisibleChanged(object sender, EventArgs e)
  3.         {
  4.             Globals.Ribbons.Ribbon1.togAuto.Checked = this.taskPanAuto.Visible;
  5.         }
復制代碼

觸發(fā)-TOGGLEBUTTON

  1.         private void togAuto_Click(object sender, RibbonControlEventArgs e)
  2.         {
  3.             RibbonToggleButton button = sender as RibbonToggleButton;
  4.             this.addin.TaskPanAuto.Visible = button.Checked;
  5.         }
復制代碼

5#
發(fā)表于 2014-3-24 23:02:04 | 只看該作者
study
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則

QQ|站長郵箱|小黑屋|手機版|Office中國/Access中國 ( 粵ICP備10043721號-1 )  

GMT+8, 2024-10-23 10:20 , Processed in 0.096951 second(s), 28 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回復 返回頂部 返回列表