GraphicsPath graphicsPath = new GraphicsPath();
graphicsPath.AddPolygon(new Point[] {
new Point(0, panelCorner.Height),
new Point(panelCorner.Width, panelCorner.Height),
new Point(panelCorner.Width, 0)
});
Region myRegion = new Region(graphicsPath);
panelCorner.Region = myRegion;
graphicsPath.Dispose();
myRegion.Dispose(); //раньше работало, а теперь вызывает краш при появлении панели
Если убрать последнюю строчку, то работает. Но в MSDN не нашел (наверное, плохо читал), надо ли уничтожать GraphicsPath и Region, если регион был присвоен контролу.
На WinAPI не надо было (наверное, по-этому и крашится). А тут ещё GraphicsPath Его надо диспозить или нет?
Если это происходит не 100500 раз в секунду, то можно не разбираться как надо, а просто ничего не делать, когда-нибудь после удаления ссылки из всех переменных вызовется финалайзер.
А почему бы и нет? Не факт, что переданный объект и дальше будет использоваться. В данном случае не ясно, Region будет уничтожен автоматически или его надо будет уничтожить вручную в конце программы.
То есть, так со всеми низкоуровневыми объектами? Font и Image тоже сами уничтожатся?
Я думал, это работает только с управляемым кодом.