#winforms #visual-c #c -cli
#winforms #visual-c #c -cli
Вопрос:
Я пытаюсь создать щедрый и быстрый для создания компонентов графический интерфейс, код, который я сделал, был следующим, но я знаю, что он не делает то, что я хочу, и я также не знаю, как я могу это сделать.
#using <System.Drawing.dll>
#using <System.Windows.Forms.dll>
using namespace System;
using namespace System::Drawing;
using namespace System::Windows::Forms;
public ref class GUI : public Form
{
private:
int x, y;
String^ text;
Button^ btm;
public:
GUI(int _x, int _y, String^ caption)
{
x = _x;
y = _y;
text = caption;
init_btm();
}
void init_btm()
{
btm = gcnew Button();
btm->Location = Point(x, y);
btm->Text = text;
Controls->Add(btm);
}
};
int main(array<System::String ^> ^args)
{
Application::Run(gcnew GUI(20,20,"Ola mundo"));
return 0;
}
Я пытаюсь создать что-то вроде этого…
скорее, динамический способ создания компонентов и добавления компонентов в форму ну, что бы я сделал, это создал класс, в котором я могу получить к нему доступ, и создал несколько кнопок, и этот класс, добавьте эти кнопки в форму, может быть, что-то вроде этого:
ADD_BTM^ btm;
btm->Add(20,20,"Hello 1");
btm->Add(20,20,"Hello 2");
Вам также может быть интересно, почему я не «спроектировал» свой интерфейс, я изучаю C / CLI, и я пытаюсь создать эту программу, просто для изучения.
Я ценю помощь.
Комментарии:
1. Не могли бы вы описать проблему немного подробнее? Что это показывает, если что-нибудь? Есть ли ошибка?
2. Мне любопытно, почему вы пытаетесь использовать C / CLI для этого?
Ответ №1:
Вы уже знаете, как добавить новую кнопку в форму, вам просто нужно добавить параметры в метод, а затем вызвать его повторно:
В public
разделе GUI
:
void AddButton(int x, int y, String^ caption)
{
auto button = gcnew Button();
button->Location = Point(x, y);
button->Text = caption;
Controls->Add(button);
}
В main
:
auto form = gcnew GUI();
form->AddButton(20, 20, "Hello 1");
form->AddButton(40, 40, "Hello 2");
Application::Run(form);
(В коде используется auto
из C 11. Если вы не используете VS 2010, просто замените их фактическим типом.)
Комментарии:
1. Чтобы добавить один дескриптор функции в кнопку, например, если я нажал на кнопку, покажите окно сообщений…. Как я могу это сделать?