Следующий код надрез бросает InvalidCastException на петле Еогеасп:Как это бросать InvalidCastException
Невозможно привести объект типа «System.Windows.Forms.StatusStrip» до типа «System.Windows .Forms.GroupBox.
Я просто не понимаю, как это возможно .... Затем я снова нуб, поэтому его, вероятно, что-то глупое.
private void doSlide(GroupBox MoveThis)
{
//location 12,27
var t = Task.Factory.StartNew(() =>
{
ExecuteSecure(() =>
{
foreach (GroupBox box in this.Controls)
{
if (box != MoveThis)
{
box.Left = (-1) * box.Width;
}
else
{
do
{
if (box.Left > 12)
box.Left--;
else
box.Left++;
}
while (box.Left != 12);
}
}
});
});
}
Вот код для Execute Secure
private void ExecuteSecure(Action a)
{
if (InvokeRequired)
BeginInvoke(a);
else a();
}
В основном у меня есть форма с фиксированным размером и несколько коробок групп на форме, только один из которых виден в любой заданной точке. Когда нам нужно сделать новую видимость GroupBox, мы вызываем DoSlide (GroupBox) и указываем групповой ящик, который мы хотим сделать видимым. Затем предполагается, что каждый GroupBox переместит форму в местоположение (-Box.Width, 27), за исключением указанной формы, которая получает слайд (увеличенный или уменьшенный box.left) в представлении.
Можете ли вы опубликовать трассировку стека? –
Все элементы в 'this.Controls' типа' GroupBox' (или их подкласса)? –