У меня есть этот кусок кода c # в моей надстройке Excel 2003:
var leafPoint = m_worksheet.Shapes.Item("aPoint").Duplicate();
leafPoint.Name = "Shape" + (m_shapesNameIndex++).ToString();
leafPoint.OnAction = m_worksheet.CodeName + ".PointClicked";
leafPoint.AlternativeText =
string.Format("Correlation Value: {0}",
item.PointData.Correlation.ToString("0.0000;-0.0000"));
leafPoint.Top = item.LeftChildNode.Top +
((item.RightChildNode.Top - item.LeftChildNode.Top) / 2) +
(leafPoint.Height / 2);
Когда я запускаю его в Excel 2003, он работает отлично.Однако, когда я запускаю его в Excel 2007, значение Top формы отключено ... Оно всегда заканчивается на несколько пикселей выше предполагаемого местоположения!
Когда я просматривал журналы, в Excel 2003последовательно помещается в правильную позицию, но в Excel 2007, когда код пытается разместить верхнюю позицию фигуры, Excel 2007, по-моему, переопределяет значение по какой-то причине (я думаю).case значение leafPoint.Top
разрешено до 206.25
.В Excel 2003 это действительно был результат.Однако в Excel 2007 это значение в конечном итоге становится 204.2954
...
Кто-нибудь имеет некоторое представление об этой проблеме?