Форум программистов, компьютерный форум, киберфорум
C++/CLI Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.82/215: Рейтинг темы: голосов - 215, средняя оценка - 4.82
24 / 24 / 2
Регистрация: 27.11.2009
Сообщений: 94

Как сделать собственную кнопку выхода из приложения?

01.12.2009, 12:46. Показов 42402. Ответов 66
Метки нет (Все метки)

скажите please как сделать собственную кнопку выхода из windows forms, как придать "button" значение выхода
1
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.12.2009, 12:46
Ответы с готовыми решениями:

как сделать собственную иконку на кнопку
как сделать собственную иконку на кнопку например я хочу сделать button1 в виде диска(сохранение) а на button2 стрелку

Как сделать собственную иконку приложения?
как сделать, чтобы в проводнике приложение имело указанную, а нестандартную иконку?

Сделать кнопку выхода из отчёта
Всем привет! Как сделать кнопку выхода из отчёта?

66
24 / 24 / 2
Регистрация: 27.11.2009
Сообщений: 94
03.12.2009, 01:21  [ТС]
он мне не не нужен не в первой ни во второй, я так понимаю-для чего он нужен?
1
Эксперт JavaЭксперт С++
 Аватар для M128K145
8384 / 3618 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
03.12.2009, 10:13
delong, он нужен для того чтобы выполнять некоторые действия во время загрузки формы, например в зависимости от состояния подключения к интернету отобразить на форме соответствующий текст
2
24 / 24 / 2
Регистрация: 27.11.2009
Сообщений: 94
03.12.2009, 15:53  [ТС]
спс...подскажи как сделать чтобы форма открываласт строго в центре экрана

Добавлено через 15 минут
все нашел...
1
Эксперт JavaЭксперт С++
 Аватар для M128K145
8384 / 3618 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
03.12.2009, 15:57
в конструкторе формы пропиши
C++
1
StartPosition = FormStartPosition::CenterScreen;
2
24 / 24 / 2
Регистрация: 27.11.2009
Сообщений: 94
03.12.2009, 15:58  [ТС]
подскажи...что то с кнопкой не получается-как сделать ее круглой: то есть есть допустим красный кружок на белом фоне и как сделать что-бы остался только красный кружок, то есть сделать белый фон прозрачным, но только по отношению к фону формы?
1
Эксперт JavaЭксперт С++
 Аватар для M128K145
8384 / 3618 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
03.12.2009, 16:09
delong, там же в конструкторе пропиши
C++
1
2
3
button1->FlatStyle = FlatStyle::Flat;
button1->FlatAppearance->MouseDownBackColor = Color::Transparent;
button1->FlatAppearance->MouseOverBackColor = Color::Transparent;
2
24 / 24 / 2
Регистрация: 27.11.2009
Сообщений: 94
03.12.2009, 17:07  [ТС]
вот прописал...
C++
1
2
3
4
5
6
7
8
this->button1->BackColor = System::Drawing::Color::Transparent;
            this->button1->BackgroundImage = (cli::safe_cast<System::Drawing::Image^  >(resources->GetObject(L"button1.BackgroundImage")));
            this->button1->FlatAppearance->BorderSize = 0;
            this->button1->FlatAppearance->MouseDownBackColor = System::Drawing::Color::Transparent;
            this->button1->FlatAppearance->MouseOverBackColor = System::Drawing::Color::Transparent;
            this->button1->FlatStyle = System::Windows::Forms::FlatStyle::Flat;
            this->button1->Location = System::Drawing::Point(25, 208);
            this->button1->Name = L"button1";
...но белый фон все равно остался

Добавлено через 1 минуту
может мне нужно вставить не backround кнопки, а image...?

Добавлено через 1 минуту
а без разницы какого формата картинка будет?...или предпочтение *.bmp

Добавлено через 31 минуту
можно ли сделать так что бы при перемищении курсора на эту кнопку картинка изменялась-то есть появлялась другая картинка?
1
Эксперт JavaЭксперт С++
 Аватар для M128K145
8384 / 3618 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
03.12.2009, 19:16
Цитата Сообщение от delong Посмотреть сообщение
можно ли сделать так что бы при перемищении курсора на эту кнопку картинка изменялась-то есть появлялась другая картинка?
Смотри эвенты кнопки MouseDown и MouseHover
Цитата Сообщение от delong Посмотреть сообщение
а без разницы какого формата картинка будет
лучше битмап
2
24 / 24 / 2
Регистрация: 27.11.2009
Сообщений: 94
04.12.2009, 10:11  [ТС]
можно ли запустить с Windows Forms отдельный файл exe или вообще никак?

Добавлено через 1 час 21 минуту
Вот вроде что то через это :
System.Diagnostics.Process.Start()
только это прям в обработчик сувать или куда?
1
Эксперт JavaЭксперт С++
 Аватар для M128K145
8384 / 3618 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
04.12.2009, 15:34
Цитата Сообщение от delong Посмотреть сообщение
только это прям в обработчик сувать или куда?
да любого события или в методе, который вызовешь при каком-нибудь событии
1
24 / 24 / 2
Регистрация: 27.11.2009
Сообщений: 94
05.12.2009, 08:09  [ТС]
непонял...
Цитата Сообщение от M128K145 Посмотреть сообщение
да любого события или в методе, который вызовешь при каком-нибудь событии
ну и как вызвать файл EXE - может ,я думаю библиотеку создать,а потом из библиотеки его взять?
1
24 / 24 / 2
Регистрация: 27.11.2009
Сообщений: 94
05.12.2009, 20:11  [ТС]
Подскажите есть exe файл куда мне его нужно добавить или создать библиотеку, или что то вроде этого, что бы после этого я смог его отрыть с помощью button из формы???
1
Эксперт JavaЭксперт С++
 Аватар для M128K145
8384 / 3618 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
05.12.2009, 23:09
C++
1
Process::Start("путь к программе");
и не забудь прописать
C++
1
using namespace System::Diagnostics;
2
24 / 24 / 2
Регистрация: 27.11.2009
Сообщений: 94
05.12.2009, 23:41  [ТС]
а process к форме надо добавлять??
а как сделать что бы без пути к программе то есть приложение, которое я открываю по кнопке являлась частью Windows Forms??
1
Эксперт JavaЭксперт С++
 Аватар для M128K145
8384 / 3618 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
06.12.2009, 00:01
Цитата Сообщение от delong Посмотреть сообщение
то есть приложение, которое я открываю по кнопке являлась частью Windows Forms
Сам понял что спросил?
2
24 / 24 / 2
Регистрация: 27.11.2009
Сообщений: 94
06.12.2009, 00:14  [ТС]
если я пишу так...
Form1
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#pragma once
 
 
namespace gh {
 
    using namespace System::Diagnostics;
    using namespace System;
    using namespace System::ComponentModel;
    using namespace System::Collections;
    using namespace System::Windows::Forms;
    using namespace System::Data;
    using namespace System::Drawing;
 
    /// <summary>
    /// Сводка для Form1
    ///
    /// Внимание! При изменении имени этого класса необходимо также изменить
    ///          свойство имени файла ресурсов ("Resource File Name") для средства компиляции управляемого ресурса,
    ///          связанного со всеми файлами с расширением .resx, от которых зависит данный класс. В противном случае,
    ///          конструкторы не смогут правильно работать с локализованными
    ///          ресурсами, сопоставленными данной форме.
    /// </summary>
    public ref class Form1 : public System::Windows::Forms::Form
    {
    public:
        Form1(void)
        {
            InitializeComponent();
            //
            //TODO: добавьте код конструктора
            //
        }
 
    protected:
        /// <summary>
        /// Освободить все используемые ресурсы.
        /// </summary>
        ~Form1()
        {
            if (components)
            {
                delete components;
            }
        }
    private: System::Windows::Forms::Button^  button1;
    protected: 
 
    private:
        /// <summary>
        /// Требуется переменная конструктора.
        /// </summary>
        System::ComponentModel::Container ^components;
 
#pragma region Windows Form Designer generated code
        /// <summary>
        /// Обязательный метод для поддержки конструктора - не изменяйте
        /// содержимое данного метода при помощи редактора кода.
        /// </summary>
        void InitializeComponent(void)
        {
            this->button1 = (gcnew System::Windows::Forms::Button());
            this->SuspendLayout();
            // 
            // button1
            // 
            this->button1->Location = System::Drawing::Point(31, 25);
            this->button1->Name = L"button1";
            this->button1->Size = System::Drawing::Size(75, 23);
            this->button1->TabIndex = 0;
            this->button1->Text = L"button1";
            this->button1->UseVisualStyleBackColor = true;
            this->button1->Click += gcnew System::EventHandler(this, &Form1::button1_Click);
            // 
            // Form1
            // 
            this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
            this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
            this->ClientSize = System::Drawing::Size(284, 264);
            this->Controls->Add(this->button1);
            this->Name = L"Form1";
            this->Text = L"Form1";
            this->ResumeLayout(false);
 
        }
#pragma endregion
    private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
                 Process::Start(C:\Program Files\7-Zip\7zFM.exe)
             }
    };
}

...то он мне кучу ошибок выдает:
..........

1>c:\users\валера\documents\visual studio 2008\projects\gh\gh\Form1.h(87) : error C2017: недопустимая escape-последовательность
1>c:\users\валера\documents\visual studio 2008\projects\gh\gh\Form1.h(87) : error C2017: недопустимая escape-последовательность
1>c:\users\валера\documents\visual studio 2008\projects\gh\gh\Form1.h(87) : error C2017: недопустимая escape-последовательность
1>c:\users\валера\documents\visual studio 2008\projects\gh\gh\Form1.h(87) : error C2059: синтаксическая ошибка: неправильный суффикс для числа
1>c:\users\валера\documents\visual studio 2008\projects\gh\gh\Form1.h(87) : error C2065: C: необъявленный идентификатор
1>c:\users\валера\documents\visual studio 2008\projects\gh\gh\Form1.h(87) : error C2143: синтаксическая ошибка: отсутствие ")" перед ":"
1>c:\users\валера\documents\visual studio 2008\projects\gh\gh\Form1.h(87) : error C2059: синтаксическая ошибка: )


Добавлено через 3 минуты
ну в смысле создать какую-нибудь библиотеку с этим ехе и из библиотеки его выцарапать, то есть без указания пути...можно так или неА....?
1
delong33
06.12.2009, 17:47
ну например я хочу с помощью кнопки открыть электронную книгу(.ехе), после чего записать на диск-вот почему мне нужно это сделать без указания пути файла????
Эксперт JavaЭксперт С++
 Аватар для M128K145
8384 / 3618 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
06.12.2009, 17:59
C++
1
Process::Start(@"C:\Program Files\7-Zip\7zFM.exe");
Если екзешник, который хочешь запустить, будет лежать рядом с твоей программой то тогда можно писать только имя
2
24 / 24 / 2
Регистрация: 27.11.2009
Сообщений: 94
07.12.2009, 02:06  [ТС]
спс...и без собаки получилось это я что то намудрил...у меня вот какой вопрос а можно ли екзешник поместить в подпапку-попробовал что-то вроде этого
C++
1
Process::Start("papka/setup.exe");
-не находит...??

Добавлено через 1 час 34 минуты
...и еще не подскажишь,после компиляции конпоновки программы антивирус(у меня Norton) удаляет ее или не запускает-как с этим быть...? ....и после запуска процесса по кнопке появляется UAC(контроль учетных записей на Vista), если продолжить то все нормально, а если отменить то появляется неприятное сообщение, мол действие отменено пользователем и предлагается "продолжить" или "закрыть"->если закрыть-закроется, а если продолжить ,то программа вообще виснет...?

Добавлено через 29 минут
...и еще не подскажишь,после компиляции конпоновки программы антивирус(у меня Norton) удаляет ее или не запускает-как с этим быть...? ....и после запуска процесса по кнопке появляется UAC(контроль учетных записей на Vista), если продолжить то все нормально, а если отменить то появляется неприятное сообщение: "Необработанное исключение типа "System.ComponentModel.Win32Exceptio n" произошло в System.dll" и предлагается "прервать" или "продолжить"->если продолжить-закроется, а если прервать ,то программа вообще виснет...?
1
Эксперт JavaЭксперт С++
 Аватар для M128K145
8384 / 3618 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
07.12.2009, 02:28
C++
1
Process::Start(@"papka\setup.exe");
Насчет второго подробнее, вообще-то такого быть не должно или это реакция на сетап
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.12.2009, 02:28

сделал, регистрацию но забыл сделать кнопку выхода
сделал, регистрацию но забыл сделать кнопку выхода, help me! вот код &lt;?php // вся процедура работает на сесиях. Именно в ней хранятся...

Как сделать активной кнопку сворачивания приложения (используя SetWindowLong)?
У приложения не активна кнопка сворачивания окна, нужно сделать ее обратно активной. говорят, что с помощью SetWindowLong можно поменять...

Как вставить собственную иконку приложения?
Vopros k tem kto programmiruet na embedded VB 3.0: kak vstavit' ikonku prilozheniua vmesto standartnoi VB?

Создать меню, в котором пользователь сам сможет выбирать, что ему нужно сделать, пока не нажмет кнопку выхода
Всем доброго времени суток! Есть небольшая проблема с меню в С++. Задача: создать меню, по которому пользователь сам сможет выбирать, что...

Как у панель обработать кнопку выхода(крестик)
мне нужно узнать когда нажимается эта кнопка,как это сделать?


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

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
23. что сделано за последнее время.
anaschu 17.06.2026
• Эталон: Клиника НИИ питания РАМН, Москва — централизованный пищеблок, 225 коек, 180 пациентов • Git: репозиторий med2, ветка абсентеизм. Рабочий файл: СРесурсами1_v4. alp • Смежный проект:. . .
22. Подключение слоя системной динамики (потоковые диффуры): экономические метрики модели
anaschu 17.06.2026
Апдейт модели: финансовый контур, разделение затрат Продолжаю развивать модель рабочего коллектива на AnyLogic. В этот раз работа шла над агентом Экономика — финансовым SD-слоем модели. Задача:. . .
[golang] Insert Delete GetRandom O(1) (Leetcode: 380)
alhaos 16.06.2026
Insert Delete GetRandom O(1) Сложность: Medium Источник: LeetCode 380 Задача Реализовать структуру данных RandomizedSet, которая поддерживает следующие операции за O(1) в среднем:
Свет в конце тоннеля
kumehtar 16.06.2026
Поймал себя на одной мысли. Раньше мне всегда казалось неправильным жить без чёткого понимания, куда всё идёт. Будто я иду по дороге судьбы, но не знаю, куда она ведёт. А раз не знаю — значит,. . .
[golang] Реализация стека с поддержкой получения минимального элемента за O(1)
alhaos 16.06.2026
Min Stack Сложность: Medium Источник: LeetCode 155 Задача: Реализовать стек который поддерживает push, pop, top и получение минимального элемента за O(1). Методы:
[golang] Конкурентный fetcher с ограничением максимального количества одновременных HTTP запросов.
alhaos 10.06.2026
Задача Реализовать конкурентный fetcher с ограничением максимального количества одновременных HTTP запросов. Сигнатура func Fetch(urls string, maxConcurrent int) Result Пример urls :=. . .
[golang] Состояние гонки (race condition)
alhaos 10.06.2026
Состояние гонки (race condition) Состояние гонки (Race Condition) — это ошибка, возникающая при одновременном доступе нескольких горутин к одним и тем же данным без должной синхронизации. При этом. . .
Взрослые отношения, и почему они не получаются
kumehtar 09.06.2026
Когда в детстве ребёнок не получает от родителей чего-то важного, он лишается не просто приятных переживаний, а основы для формирования определённых внутренних качеств и навыков. Если ребёнок не. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru