none
Выполнить RRS feed

Ответы

  • #include "Form2.h"

    ....

     

    Form2^ f2 = gcnew Form2();

    f2->Show();

     


    Для связи [mail]
    • Помечено в качестве ответа Ruzik 26 декабря 2010 г. 15:45
    26 декабря 2010 г. 15:22
  • Если из формы1 нужно вызвать форму 2, то в файле Form1.h в самом начале, еще до определения namespace подключаем #include "Form2.h"

    Потом объъявляем приватную переменную Form2 ^f2;

    В конструкторе формы инициализируем ее f2 = gcnew Form2();

    По кнопке показываем форму - f2->Show();

     

    #pragma once
    #include "Form2.h"
    
    namespace tttt {
    
    	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>
    	/// Summary for Form1
    	/// </summary>
    	public ref class Form1 : public System::Windows::Forms::Form
    	{
    	public:
    		Form1(void)
    		{
    			InitializeComponent();
    			//
    			//TODO: Add the constructor code here
    			//
    			f2 = gcnew Form2();
    		}
    
    	protected:
    		/// <summary>
    		/// Clean up any resources being used.
    		/// </summary>
    		~Form1()
    		{
    			if (components)
    			{
    				delete components;
    			}
    		}
    	private: System::Windows::Forms::Button^ button1;
    	protected: 
    
    	private:
    		/// <summary>
    		/// Required designer variable.
    		/// </summary>
    		System::ComponentModel::Container ^components;
    		Form2 ^f2;
    
    #pragma region Windows Form Designer generated code
    		/// <summary>
    		/// Required method for Designer support - do not modify
    		/// the contents of this method with the code editor.
    		/// </summary>
    		void InitializeComponent(void)
    		{
    			this->button1 = (gcnew System::Windows::Forms::Button());
    			this->SuspendLayout();
    			// 
    			// button1
    			// 
    			this->button1->Location = System::Drawing::Point(589, 47);
    			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(740, 321);
    			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) {
    				 f2->Show();
    			 }
    	};
    }
    
    


    Для связи [mail]
    • Помечено в качестве ответа Ruzik 28 декабря 2010 г. 8:32
    27 декабря 2010 г. 20:31

Все ответы

  • И еще 1 вопрос если позволите, у меня есть 2 формы, при запуске открывается форма 1, как из неё вызвать форму 2
    26 декабря 2010 г. 14:16
  • #include "Form2.h"

    ....

     

    Form2^ f2 = gcnew Form2();

    f2->Show();

     


    Для связи [mail]
    • Помечено в качестве ответа Ruzik 26 декабря 2010 г. 15:45
    26 декабря 2010 г. 15:22
  • Вы хотите чтобы вызвались настроящие приложения (например ввели calc и вызвали калькулятор)? или просто сделать подобный интерфейс со своими командами?

     

    И еще, в предыдущих темах, на ответах, которые решили проблему, пожалуйста, нажимайте кнопку 'Пометить как ответ'. Спасибо.


    Для связи [mail]
    26 декабря 2010 г. 15:25
  • -ввел calc вызвал калькулятор
    26 декабря 2010 г. 15:45
  • using System;
    using System.Diagnostics;
    
    namespace ConsoleApplication46
    {
      class Program
      {
        static void Main(string[] args)
        {
          string exeName = Console.ReadLine();
          Process.Start(exeName);
        }
      }
    }
    
    
    26 декабря 2010 г. 15:52
    Отвечающий
  • System::Diagnostics::Process::Start(/* команда, например, calc */);
    

    Для связи [mail]
    26 декабря 2010 г. 15:52
  • А не подскажите, что куда вставлять, я про форму

    #include "Form2.h"-это как я понял в главный файл проекта

    ....

     

    Form2^ f2 = gcnew Form2(); - я вставил в void InitializeComponent(void)

    f2->Show(); это я вставил в событие

    Вроде все правильно, но вылазиют следующие ошибки

    Ошибка 1 error C2065: f2: необъявленный идентификатор c:\documents and settings\rustam\мои документы\visual studio 2010\projects\sdfsdfsdf\Form1.h 811 1 sdfsdfsdf

    Ошибка 2 error C2227: выражение слева от "->Show" должно указывать на тип класса, структуры или объединения либо на универсальный тип c:\documents and settings\rustam\мои документы\visual studio 2010\projects\sdfsdfsdf\Form1.h 811 1 sdfsdfsdf

    26 декабря 2010 г. 16:54
  • Тогда Form2^ f2 должно быть объявлено глобально, а в InitializeComponent уже f2 = gcnew Form2();
    Для связи [mail]
    26 декабря 2010 г. 18:09
  • Не могли бы расписать код, с пометками, что куда вставить, а то ошибок много возникает

    Заранее спасибо!

    27 декабря 2010 г. 11:02
  • Если из формы1 нужно вызвать форму 2, то в файле Form1.h в самом начале, еще до определения namespace подключаем #include "Form2.h"

    Потом объъявляем приватную переменную Form2 ^f2;

    В конструкторе формы инициализируем ее f2 = gcnew Form2();

    По кнопке показываем форму - f2->Show();

     

    #pragma once
    #include "Form2.h"
    
    namespace tttt {
    
    	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>
    	/// Summary for Form1
    	/// </summary>
    	public ref class Form1 : public System::Windows::Forms::Form
    	{
    	public:
    		Form1(void)
    		{
    			InitializeComponent();
    			//
    			//TODO: Add the constructor code here
    			//
    			f2 = gcnew Form2();
    		}
    
    	protected:
    		/// <summary>
    		/// Clean up any resources being used.
    		/// </summary>
    		~Form1()
    		{
    			if (components)
    			{
    				delete components;
    			}
    		}
    	private: System::Windows::Forms::Button^ button1;
    	protected: 
    
    	private:
    		/// <summary>
    		/// Required designer variable.
    		/// </summary>
    		System::ComponentModel::Container ^components;
    		Form2 ^f2;
    
    #pragma region Windows Form Designer generated code
    		/// <summary>
    		/// Required method for Designer support - do not modify
    		/// the contents of this method with the code editor.
    		/// </summary>
    		void InitializeComponent(void)
    		{
    			this->button1 = (gcnew System::Windows::Forms::Button());
    			this->SuspendLayout();
    			// 
    			// button1
    			// 
    			this->button1->Location = System::Drawing::Point(589, 47);
    			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(740, 321);
    			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) {
    				 f2->Show();
    			 }
    	};
    }
    
    


    Для связи [mail]
    • Помечено в качестве ответа Ruzik 28 декабря 2010 г. 8:32
    27 декабря 2010 г. 20:31
  • Огромное спасибо помогло, только вот эту строчку кода надо убрать(во всяком случае у меня)

    System::ComponentModel::Container ^components;
    

    28 декабря 2010 г. 18:54