Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.11.2011, 10:52   #1
ds.Dante
Старожил
 
Аватар для ds.Dante
 
Регистрация: 06.08.2009
Сообщений: 2,992
По умолчанию Зачем нужен SuspendLayout/ResumeLayout

Код:
private void KeyPressed (object sender, KeyEventArgs e)
{
//	SuspendLayout ();
	dataGridView1.Rows.Clear ();

	for (int i = 0; i < 100; i++)
	{
		for (int j = 0; j < 10000000; j++) // CPU load
			;
		dataGridView1.Rows.Add ("qwe");
	}

//	ResumeLayout ();
}
Независимо от того, есть SuspendLayout или нет, окно ведёт себя одинаково: скроллбар колбасит, а остальное никак не реагирует до окончания операции.

Пробовал разные действия, проверял разные компиляторы (VS 2005 и 2010), - эти функции вообще ни на что не влияют. Такое ощущение, что компилятор плюёт на исходник, и расставляет эти функции по своему усмотрению. Нафига оно тогда?
ds.Dante вне форума Ответить с цитированием
Старый 16.11.2011, 12:27   #2
ds.Dante
Старожил
 
Аватар для ds.Dante
 
Регистрация: 06.08.2009
Сообщений: 2,992
По умолчанию

Начальник подсказал, что SuspendLayout/ResumeLayout влияет только на перерасчёт координат контролов в соответствии с anchoring и docking.

Вот такой пример работает:
Код:
private void KeyPressed (object sender, KeyEventArgs e)
{
//	SuspendLayout ();
	for (float i = 0; i < 100; i++)
	{
		Height--;
		Thread.Sleep (5);
	}
//	ResumeLayout ();
}
На форму можно добавить контрол с anchor-ом по нижнему краю, и при SuspendLayout/ResumeLayout он не будет двигаться вместе с окном.
ds.Dante вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
зачем нужен IdAntiFreeze1? cargo29 Компоненты Delphi 8 05.03.2012 11:40
Зачем нужен static Kasper1 Общие вопросы C/C++ 5 21.12.2010 01:53
.NET, зачем он нужен? Qousio Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 80 18.12.2009 23:42
Зачем нужен finally? ds.Dante Общие вопросы .NET 9 15.09.2009 12:09
Зачем нужен void? Сергей089 Общие вопросы C/C++ 7 23.03.2009 17:08