112 / 64 / 23
Регистрация: 08.03.2012
Сообщений: 211
1

Глюк Visual Studio 2010?

13.02.2016, 10:16. Показов 824. Ответов 7
Метки нет (Все метки)

Доброго времени суток. Возникла проблема при работе с конструктором WinForms (C# проект). Создал свой UserControl, помещаю его на одну из страниц TabControl-а, перехожу на другую его страницу где есть обычные GroupBox-ы, и наблюдаю картину - размеры GroupBox-ов сбились, положение тоже (уходит в минуса). При удалении моего UserControla все работает нормально. Где может сидеть этот гадкий баг? Заранее спасибо
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.02.2016, 10:16
Ответы с готовыми решениями:

Проект C# Visual Studio 2010 перевести в Visual Studio 2005
Подскажите как проект создан в C# Visual Studio 2010 перевести в версию Visual Studio 2005,...

Литература по Visual Studio 2010
Посоветуйте книжку по самой среде программирования(панельки вкладки списки структура программы...и...

Visual Studio 2015 and 2010
Еще раз добрый вечер, такой вопрос, сам я работаю на Visual Studio 2015 , а оказалось, что в...

Шахматная доска на C# в visual studio 2010
Помогите, пожалуйста, решить задачу: Выведите на форму, используя класс Graphics, шахматную доску....

7
TheGreatCornholio
1249 / 727 / 285
Регистрация: 30.07.2015
Сообщений: 2,403
13.02.2016, 10:24 2
Ну так код юзер контрола бы дал, зачем телепатию подключать, у меня есть VS 2010 Express - могу проверить попробовать.
1
112 / 64 / 23
Регистрация: 08.03.2012
Сообщений: 211
13.02.2016, 10:34  [ТС] 3
Цитата Сообщение от Woldemar89 Посмотреть сообщение
Ну так код юзер контрола бы дал, зачем телепатию подключать, у меня есть VS 2010 Express - могу проверить попробовать.
Сделал
Вложения
Тип файла: zip Src.zip (9.9 Кб, 4 просмотров)
0
TheGreatCornholio
1249 / 727 / 285
Регистрация: 30.07.2015
Сообщений: 2,403
13.02.2016, 11:04 4
Цитата Сообщение от p_r_a_g_m_a Посмотреть сообщение
Сделал
Это не юзер контрол, это шняга которая имеет кучу зависимостей от проекта в котором находится, как мне ее цеплять-то?

Убрал зависимости (закомментил кучу строк), пространство имен переделал - зацепил - у меня все норм, поместил на 1ю вкладку
tabControla - на 2ю - еще накидал всего подряд. Ничего у меня не сбилось.

Смущает строка if (LicenseManager.UsageMode == LicenseUsageMode.Designtime) return;
и неизвестно что происходит в ErrorManager и AppManager.

Думаю собака зарыта в состоянии контрола - в дизайне или не в дизайне он. LicenseUsageMode.Designtime.

А смещения в конструкторе или при выполнении?
0
112 / 64 / 23
Регистрация: 08.03.2012
Сообщений: 211
13.02.2016, 11:16  [ТС] 5
Цитата Сообщение от Woldemar89 Посмотреть сообщение
Это не юзер контрол, это шняга которая имеет кучу зависимостей от проекта в котором находится, как мне ее цеплять-то?
Не стал кидать весь проект) В зависимостях нет ничего специфического.
Цитата Сообщение от Woldemar89 Посмотреть сообщение
Смущает строка if (LicenseManager.UsageMode == LicenseUsageMode.Designtime) return;
Это стандартные классы .NET, проверяющие откуда выполняется код - из графического редактора форм студии или при выполнении программы.
Цитата Сообщение от Woldemar89 Посмотреть сообщение
и неизвестно что происходит в ErrorManager и AppManager.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
using System;
using System.Windows.Forms;
using PostExchangeManager.Auth;
using PostExchangeManager.Users;
 
 
namespace PostExchangeManager.App {
    public static class ErrorManager {
        /// <summary>
        /// Выводит сообщение с текстом ошибки
        /// </summary>
        /// <param name="error">Исключение, текст которого будет выведен</param>
        public static void ShowErrorMessage(Exception error) {
            string message = (AuthManager.GetUserType == UsersManager.UserType.Admin) ? error.ToString() : error.Message;
            MessageBox.Show("Произошла внутренняя ошибка. Обратитесь в отдел ГИТ по телефону ***.\n\nТекст ошибки:\n" + message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
 
        /// <summary>
        /// Выводит сообщение с текстом ошибки
        /// </summary>
        /// <param name="error">Текст ошибки который будет выведен</param>
        public static void ShowErrorMessage(string error) {
            MessageBox.Show("Произошла внутренняя ошибка. Обратитесь в отдел ГИТ по телефону ***.\n\nТекст ошибки:\n" + error, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
    }
}
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
using System;
using System.Data.SQLite;
using System.Data.SqlServerCe;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Windows.Forms;
using PostExchangeManager.Auth;
 
 
namespace PostExchangeManager.App {
    public static class AppManager {
        ....
 
        [DllImport("user32.dll")]
        private static extern int SendMessage(IntPtr hWnd, Int32 wMsg, bool wParam, Int32 lParam);
 
        private const int WM_SETREDRAW = 11;
 
        /// <summary>
        /// Выполняет проверку, является заданный путь папкой или файлом
        /// </summary>
        /// <param name="path">Проверяемый путь</param>
        /// <returns></returns>
        public static bool IsPathDirectory(string path) {
            FileAttributes attr = File.GetAttributes(path);
 
            return ((attr & FileAttributes.Directory) == FileAttributes.Directory);
        }
 
        public static void ListViewDisableRedraw(ListView lv, bool flag) {
            SendMessage(lv.Handle, WM_SETREDRAW, !flag, 0);
            if (!flag) {
                lv.Refresh();
            }
        }
        ....
    }
}
Цитата Сообщение от Woldemar89 Посмотреть сообщение
А смещения в конструкторе или при выполнении?
В конструкторе форм студии. Ну и естественно, когда запускаю проект, при сборке все смещается тоже т.к. эти параметры прописываются в *.Desinger.cs.
0
TheGreatCornholio
1249 / 727 / 285
Регистрация: 30.07.2015
Сообщений: 2,403
13.02.2016, 12:43 6
Цитата Сообщение от p_r_a_g_m_a Посмотреть сообщение
C#
1
2
3
[DllImport("user32.dll")]
private static extern int SendMessage(IntPtr hWnd, Int32 wMsg, bool wParam, Int32 lParam);
private const int WM_SETREDRAW = 11;
Это еще зачем?
Цитата Сообщение от p_r_a_g_m_a Посмотреть сообщение
LicenseManager.UsageMode == LicenseUsageMode.Designtime
За это тоже поясните

Мне кажется, дело в глюке VS, либо в этих местах, либо все вместе.
Сделайте ваш usercontrol независимым и не пользуйтесь чем попало (я про то, что выше), может, глюки исчезнут.
1
112 / 64 / 23
Регистрация: 08.03.2012
Сообщений: 211
13.02.2016, 12:46  [ТС] 7
Цитата Сообщение от Woldemar89 Посмотреть сообщение
Это еще зачем?
Когда в цикле добавляешь/удаляешь Item-ы в ListView с включенной прорисовкой самого элемента, то время выполнения операции занимает намного больше времени чем при отключенной. Поэтому:
C#
1
SendMessage(lv.Handle, WM_SETREDRAW, !flag, 0);
Цитата Сообщение от Woldemar89 Посмотреть сообщение
За это тоже поясните
Вот, как пример: http://stackoverflow.com/quest... time-rules
Цитата Сообщение от Woldemar89 Посмотреть сообщение
Мне кажется, дело в глюке VS, либо в этих местах. Где то косяк, неверное использование итд.
Я тоже так думаю. Ну, буду экспериментировать на кошках)
0
TheGreatCornholio
1249 / 727 / 285
Регистрация: 30.07.2015
Сообщений: 2,403
13.02.2016, 13:11 8
Цитата Сообщение от p_r_a_g_m_a Посмотреть сообщение
Когда в цикле добавляешь/удаляешь Item-ы в ListView с включенной прорисовкой самого элемента
Цитата Сообщение от p_r_a_g_m_a Посмотреть сообщение
Вот, как пример
Мне кажется ваши проблемы можно решить поизящнее, не прибегая к вырезанию гланд через неприспособленные для этого места.
Цитата Сообщение от p_r_a_g_m_a Посмотреть сообщение
Ну, буду экспериментировать на кошках
У меня ничего не сломалось, возможно как раз из за того, что косяк находился находился в части нерабочего кода, которую я закомментил.
Пробуйте в общем, возможные причины - практически очевидны, попробуйте их устранить и проверить,
советую пользоваться системой управления версиями, создавать для экспериментов новую ветку, или реверты делать.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.02.2016, 13:11
Помогаю со студенческими работами здесь

Редактирование кода в Visual Studio 2010
Добрый день! Только начал изучать язык, работаю по книге с Windows Forms. Часто возникает проблема...

Посоветуйте книгу по Visual Studio 2010 и C#
посоветуйте пожалуйста книгу(и) по Visual Studio 2010 и C# для начинающих на русском языке....

Опубликовать приложение на Visual Studio 2010
Помогите пожалуйста решит проблему. Приложение соединен с базой данных находящийся на SQL...

Как создать Hello World в visual studio 2010? (C#)
привет. скажите как создать Hello World в visual studio 2010? я так понимаю: Студия 2010 --&gt;...

Visual Studio 2010 подключение DLL(C++) к проекту на C#
Добрый день! По манулу создал DLL. Так же создал приложение на C#. Хочется использовать функции...

Visual Studio 2010 не компилирует некоторые библиотеки
Здравствуйте! Опишу вкратце проблему. Имеется солюшн, состоящий из главного проекта и трех...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru