/// <summary> /// 插入VSTO winform中的PictrueBox控件来显示图片 /// </summary> /// <param name="shtPic">工作表</param> /// <param name="rngPic">单元格</param> /// <param name="picPath">图片路径</param> /// <param name="picName">图片名字</param> public void InsertPictureBox(Excel.Worksheet shtPic, Excel.Range rngPic, string picPath, string picName) { rngPic.ColumnWidth = rngColWidth; rngPic.RowHeight = rngRowHeight; //转换为Vsto对象 ToolExcel.Worksheet wrk = Globals.Factory.GetVstoObject(shtPic); //声明一个Excel宿主控件对象 ExcelControls.PictureBox picBox = new ExcelControls.PictureBox(); if (!wrk.Controls.Contains(picName)) { picBox.Image = Image.FromFile(picPath);//导入图片到控件中 picBox.SizeMode = PictureBoxSizeMode.StretchImage; picBox.Tag = picName; picBox.Click += picBox_Click; //添加dot net 控件 wrk.Controls.AddControl(picBox, rngPic, picName); //picBox.Placement = Excel.XlPlacement.xlMoveAndSize;//随单元格大小变化而变化 } }
void picBox_Click(object sender, EventArgs e) { ToolExcel.Controls.PictureBox pic = (ToolExcel.Controls.PictureBox)sender; MessageBox.Show(pic.Tag.ToString()); }