20 / 19 / 1
Регистрация: 20.10.2009
Сообщений: 103
1

Управление положением MessageBox

05.05.2011, 19:29. Показов 7670. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Можно ли как то управлять ей ? что бы выбрать место для её отображения ? Хотел что бы она открывалась по центру текущей формы...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.05.2011, 19:29
Ответы с готовыми решениями:

Строку, связанную с положением CurrencyManager, нельзя сделать невидимой
Здравствуйте. При попытке сделать невидимой строку в datagridview возникает ошибка: Строку,...

Класс млекопитающих: создать дочерний класс кошка, который также характеризуется именем и положением в пространстве
Есть класс млекопитающих. Он у меня характеризуется именем и положением в пространстве. Хочу...

Управление положением 3D объектов (C#)
Всем привет! Буквально пару дней занимаюсь WPF, пока что еще мало знаю. В интернете нашел пример...

Управление положением окна
Доброго времени суток. У меня такой вопрос: как можно отправить форму своей программы, на второй...

8
начал понимать msdn
57 / 57 / 6
Регистрация: 11.03.2010
Сообщений: 232
05.05.2011, 19:38 2
Не знаю как у тебя, но у меня она открывается по центру.
Думаю если неполучается по центру, то создай новую форму, со своими элементами управления и в свойстве StartPosision выбери Center Screen.
0
20 / 19 / 1
Регистрация: 20.10.2009
Сообщений: 103
05.05.2011, 19:40  [ТС] 3
МессаджБокс открывается по центру экрана а мне бы по центру текущей формы или вообще её разве ни как нельзя позиционировать ?
0
6280 / 3565 / 898
Регистрация: 28.10.2010
Сообщений: 5,926
05.05.2011, 20:05 4
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
class CenterWinDialog : IDisposable
{
    private int mTries = 0;
    private Form mOwner;
 
    public CenterWinDialog(Form owner)
    {
        mOwner = owner;
        owner.BeginInvoke(new MethodInvoker(findDialog));
    }
 
    private void findDialog()
    {
        // Enumerate windows to find the message box
        if (mTries < 0) return;
        EnumThreadWndProc callback = new EnumThreadWndProc(checkWindow);
        if (EnumThreadWindows(GetCurrentThreadId(), callback, IntPtr.Zero))
        {
            if (++mTries < 10) mOwner.BeginInvoke(new MethodInvoker(findDialog));
        }
    }
    private bool checkWindow(IntPtr hWnd, IntPtr lp)
    {
        // Checks if <hWnd> is a dialog
        StringBuilder sb = new StringBuilder(260);
        GetClassName(hWnd, sb, sb.Capacity);
        if (sb.ToString() != "#32770") return true;
        // Got it
        Rectangle frmRect = new Rectangle(mOwner.Location, mOwner.Size);
        RECT dlgRect;
        GetWindowRect(hWnd, out dlgRect);
        MoveWindow(hWnd,
            frmRect.Left + (frmRect.Width - dlgRect.Right + dlgRect.Left) / 2,
            frmRect.Top + (frmRect.Height - dlgRect.Bottom + dlgRect.Top) / 2,
            dlgRect.Right - dlgRect.Left,
            dlgRect.Bottom - dlgRect.Top, true);
        return false;
    }
    public void Dispose()
    {
        mTries = -1;
    }
 
    // P/Invoke declarations
    private delegate bool EnumThreadWndProc(IntPtr hWnd, IntPtr lp);
    [DllImport("user32.dll")]
    private static extern bool EnumThreadWindows(int tid, EnumThreadWndProc callback, IntPtr lp);
    [DllImport("kernel32.dll")]
    private static extern int GetCurrentThreadId();
    [DllImport("user32.dll")]
    private static extern int GetClassName(IntPtr hWnd, StringBuilder buffer, int buflen);
    [DllImport("user32.dll")]
    private static extern bool GetWindowRect(IntPtr hWnd, out RECT rc);
    [DllImport("user32.dll")]
    private static extern bool MoveWindow(IntPtr hWnd, int x, int y, int w, int h, bool repaint);
    private struct RECT { public int Left; public int Top; public int Right; public int Bottom; }
}
C#
1
2
3
4
using (new CenterWinDialog(this))
{
    MessageBox.Show("Учитесь гуглить");
}
3
начал понимать msdn
57 / 57 / 6
Регистрация: 11.03.2010
Сообщений: 232
05.05.2011, 20:23 5
Полагаю, что нет.
Думаю что поможет, лови проект.
Вложения
Тип файла: rar WindowsFormsApplication12.rar (43.1 Кб, 153 просмотров)
0
20 / 19 / 1
Регистрация: 20.10.2009
Сообщений: 103
05.05.2011, 20:44  [ТС] 6
Петррр, ну скажем такое мы видели... а проще нельзя ?
не ладно... обойдемся если что заюзаю свою форму и короче и проще
0
6280 / 3565 / 898
Регистрация: 28.10.2010
Сообщений: 5,926
05.05.2011, 20:46 7
В принципе, ничего сложного. А если ты свою форму будешь создавать, то представь как тебе ее придется по размерам подгонять, выставлять на нее кнопки, подгружать картинку.
0
20 / 19 / 1
Регистрация: 20.10.2009
Сообщений: 103
05.05.2011, 21:20  [ТС] 8
Пока обошелся крайними мерами... открытие формы по центру экрана... пойдет пока...
я МессаджБокс использовал за его простоту диалога .шоу и готово... а оказывается с позиционированием вон какой гемор...
0
6280 / 3565 / 898
Регистрация: 28.10.2010
Сообщений: 5,926
05.05.2011, 21:27 9
Не вижу гемора. Всего три строки вместо обычной одной. А класс вставишь в отдельный файл и пускай лежит себе там никого не трогает.
0
05.05.2011, 21:27
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.05.2011, 21:27
Помогаю со студенческими работами здесь

Управление положением формы
У меня есть главная форма F1. Во время работы динамически порождается множество форм F3 (это...

Управление положением курсора в Textbox
Добрый вечер! По нажатию на кнопку вставляю текст внутрь Textbox начиная от положения курсора....

Unidrive M управление положением (меню 13)
Добрый день, коллеги! Вопрос очень срочный. Есть привод Unidrive M700 и двигатель Exlar GSX30 с...

Управление положением сторонней программы
Доброго времени суток. У меня такой возник вопрос: возможно ли из свой программы управлять...


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

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

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