Mājas / Internets / Saistiet divas formas c. Veidlapu pievienošana. Mijiedarbība starp formām. Izveidojiet vienas preces veidlapu vai detalizētas informācijas veidlapu

Saistiet divas formas c. Veidlapu pievienošana. Mijiedarbība starp formām. Izveidojiet vienas preces veidlapu vai detalizētas informācijas veidlapu

Pēdējā atjaunošana: 31.10.2015

Lai projektam pievienotu citu veidlapu, Solution Explorer logā ar peles labo pogu noklikšķiniet uz projekta nosaukuma un atlasiet Add (Add)->Windows Form...

Dosim jauna forma kāds vārds, piemēram, Veidlapa2.cs:

Tātad projektam esam pievienojuši otru veidlapu. Tagad mēģināsim īstenot mijiedarbību starp abām formām. Pieņemsim, ka, noklikšķinot uz pogas, pirmā forma izsauks otro formu. Vispirms pievienosim pogu pirmajai formai Form1 un veiciet dubultklikšķi uz pogas, lai pārietu uz koda failu. Tātad, mēs nonāksim pogu klikšķu notikumu apstrādātājā, kas pēc noklusējuma tiek izveidots pēc dubultklikšķa uz pogas:

Privātā void poga1_Noklikšķiniet(objekta sūtītājs, EventArgs e) ( )

Tagad pievienosim tai otrās formas izsaukuma kodu. Mūsu otro formu sauc par Form2, tāpēc vispirms mēs izveidojam šīs klases objektu un pēc tam izsaucam Rādīt metodi, lai to parādītu ekrānā:

Privāts void button1_Click(objekta sūtītājs, EventArgs e) ( Form2 newForm = new Form2(); newForm.Show(); )

Tagad darīsim otrādi – lai otrā forma ietekmētu pirmo. Kamēr otrā forma nezina par pirmās eksistenci. Lai to labotu, informācija par pirmo veidlapu kaut kādā veidā jāpārsūta uz otro veidlapu. Lai to izdarītu, konstruktorā tiks nodota saite uz veidlapu.

Tātad pārejam uz otro formu un pārejam pie tās koda – ar peles labo pogu noklikšķiniet uz formas un atlasiet Skatīt kodu (Skatīt kodu). Kamēr tas ir tukšs un satur tikai konstruktoru. Tā kā C# atbalsta metožu pārslodzi, mēs varam izveidot vairākas metodes un konstruktorus ar dažādiem parametriem un izsaukt vienu no tiem atkarībā no situācijas. Tātad, mainīsim otrās formas koda failu uz šādu:

Sistēmas izmantošana; izmantojot System.Collections.Generic; izmantojot System.ComponentModel; izmantojot System.Data; izmantojot System.Drawing; izmantojot System.Linq; izmantojot System.Text; izmantojot System.Threading.Tasks; izmantojot System.Windows.Forms; namespace HelloApp ( publiska daļēja klase Form2: Form ( public Form2() ( InitializeComponent(); ) public Form2(Form1 f) ( InitializeComponent(); f.BackColor = Color.Yellow; ) ) )

Patiesībā mēs tikko pievienojām šeit jauns konstruktors public Form2(Form1 f) , kur iegūstam pirmo formu un iestatām tās fonu uz dzeltenu. Tagad pāriesim uz pirmās formas kodu, kur mēs izsaucām otro formu, un mainīsim to uz šādu:

Privāts void button1_Click(objekta sūtītājs, EventArgs e) ( Form2 newForm = new Form2(this); newForm.Show(); )

Tā kā iekšā Šis gadījumsšis atslēgvārds apzīmē atsauci uz pašreizējo objektu - Form1 objektu, tad, veidojot otro formu, tas saņems to (saiti) un caur to pārvaldīs pirmo formu.

Tagad, noklikšķinot uz pogas, mēs izveidosim otru formu, kas nekavējoties mainīs pirmās formas krāsu.

Mēs varam arī izveidot objektus pašreizējai formai:

Privātā void poga1_Noklikšķiniet(objekta sūtītājs, EventArgs e) (Form1 newForm1 = new Form1(); newForm1.Show(); Form2 newForm2 = new Form2(newForm1); newForm2.Show(); )

Strādājot ar vairākām veidlapām, ņemiet vērā, ka viena no tām ir galvenā, kas vispirms tiek palaista failā Program.cs. Ja mums vienlaikus ir atvērta virkne veidlapu, tad, aizverot galveno, tiek aizvērta visa lietojumprogramma un līdz ar to visas pārējās formas.

Ja jums ir gara veidlapa vairākiem vienumiem, dažreiz vēlēsities ātri padziļināt, lai redzētu vairāk informācijas par vienu no vienumiem. Programmā Access ir jāizveido saite starp vairāku vienumu veidlapu un viena vienuma veidlapu. Atlasot vienumu vairāku vienumu veidlapā, tiek atvērta viena vienuma veidlapa un tiek parādīta papildu informācija.

Piezīmes:

Izveidojiet veidlapas

Vairumā gadījumu divas veidlapas granulētā konfigurācijā ir balstītas uz vienu tabulu vai vaicājumu. Ja jums jau ir dažas veidlapas, kuras jums ir jāizmanto (viena ir tabulas vai vairāku vienumu veidlapa, bet otra ir viena vienuma vai detalizētas informācijas veidlapa), varat izlaist šo sadaļu. Pretējā gadījumā izmantojiet tālāk norādītās procedūras, lai tās izveidotu.

Izveidojiet tabulas veidlapu vai veidlapu ar vairākiem elementiem

    Navigācijas rūtī atlasiet tabulu vai vaicājumu, kurā ir dati, kurus vēlaties parādīt tabulas veidā.

    Atlasiet vienumus Radīšana > Citas formas, un tad - Vairāki elementi vai Tabula atkarībā no vēlamā formas veida.

    Saglabājiet un aizveriet veidlapu.

Papildinformāciju par vairāku vienumu veidlapām skatiet rakstā Veidlapas izveide, izmantojot rīku Vairāki vienumi .

Izveidojiet vienas preces veidlapu vai detalizētas informācijas veidlapu

    Navigācijas rūtī noklikšķiniet uz tabulas vai vaicājuma, kurā ir dati, kurus vēlaties parādīt detalizētās informācijas veidlapā. Visticamāk, tā būs tā pati tabula vai vaicājums, ko izmantojāt pirmajai veidlapai.

    Atlasiet vienumus Radīšana > Veidlapa.

    Veiciet nepieciešamās izmaiņas, saglabājiet un aizveriet veidlapu.

Papildinformāciju skatiet sadaļā Veidlapas izveide, izmantojot formas rīku .

Loģikas pievienošana, lai atvērtu detalizētas informācijas veidlapu

Tagad apskatīsim, kā vairāku vienumu vai tabulas veidlapai pievienot nelielu makro, kas atvērs detalizētas informācijas veidlapu un parādīs pareizo vienumu.

Neuztraucieties, ja jums nav lielas pieredzes ar makro. Varat vienkārši kopēt un ielīmēt XML no šajā rakstā aprakstītās procedūras.

    Ja izmantojat tabulas veidlapu, veiciet dubultklikšķi uz tās navigācijas rūtī, lai to atvērtu. Vairāku vienumu veidlapai ar peles labo pogu noklikšķiniet uz tās navigācijas rūtī un atlasiet Izkārtojuma režīms.

    Nospiediet taustiņu F4, lai atvērtu rekvizītu logu, ja tas vēl nav atvērts.

    Noklikšķiniet uz kolonnas, kurai vēlaties pievienot makro. Tai ir jābūt kolonnai, uz kuras noklikšķinot, pēc makro palaišanas tiks atvērta detalizētas informācijas veidlapa. Iepriekš redzamajā attēlā makro ir pievienots kolonnai frmContactList.

Padoms:(PADOMS) Makro var pievienot vairākām kolonnām.

Lai iegūtu papildinformāciju par makro datoru datu bāzēs, sk


Ir skaidrs, ka, ja izveidojat tipa rādītāju<что там>::Forma derēs, bet man vajag jau izveidotu formu, ar pogām utt. (vispār, dažādas vadīklas), bet manuāli (t.i., programmatiski) es nevēlos tos izrakstīt uz tīras formas (daudz skriebelēšanas, nevis tas, ka pareizi saprotat). Tas ir tas, kas mani joprojām mulsina......

#pragma vienreiz
#include "Form1.h"

izmantojot nosaukumvietas sistēmu;



izmantojot nosaukumvietu System::Data;

nosaukumvieta My1(

///
/// Kopsavilkums Form2



public ref class Form2: public System::Windows::Forms::Form
{
publiski:
2. veidlapa (nederīga)
{
InitializeComponent();

}

Aizsargāts:

~Form2()
{
ja (komponenti)
{
dzēst komponentus;
}
}

Privāts:



///
{
this->components = gcnew System::ComponentModel::Container();
šis->Izmērs = Sistēma::Zīmējums::Izmērs(300,300);
šis->Teksts = L"Form2";
this->Padding = Sistēma::Windows::Forms::Padding(0);
šis->
}
#pragmaendreģions
};
}

lai gan Form1.h tas ir rakstīts šādi:

#pragma vienreiz
#include "Form2.h"

nosaukumvieta My1(

Izmantojot nosaukumvietas sistēmu;
izmantojot nosaukumvietu System::ComponentModel;
izmantojot nosaukumvietu System::Collections;
izmantojot nosaukumvietu System::Windows::Forms;
izmantojot nosaukumvietu System::Data;
izmantojot nosaukumvietu System::Drawing;

///
/// Kopsavilkums 1. veidlapai
/// BRĪDINĀJUMS: ja maināt šīs klases nosaukumu, jums būs jāmaina
/// Pārvaldīto resursu kompilatora rīka rekvizīts "Resursa faila nosaukums".
/// kas saistīti ar visiem .resx failiem, no kuriem šī klase ir atkarīga. Citādi,
/// dizaineri nevarēs pareizi mijiedarboties ar lokalizētu
/// ar šo veidlapu saistītie resursi.
public ref class Form1: public System::Windows::Forms::Form
{
publiski:
1. veidlapa (nederīga)
{
InitializeComponent();
//TODO: šeit pievienojiet konstruktora kodu
}

Aizsargāts:
/// Notīriet visus izmantotos resursus.
~Form1()
{
ja (komponenti)
{
dzēst komponentus;
}
}
privāts: Sistēma::Windows::Forms::Button^ button1;
aizsargāts:

Privāts:
/// Nepieciešamais dizainera mainīgais.
Sistēma::ComponentModel::Container ^komponenti;

#pragma region Windows Form Designer ģenerēts kods
/// Nepieciešamā metode dizainera atbalstam — nemodificēt
/// šīs metodes saturu ar koda redaktoru.
Void InitializeComponent(void)
{
this->button1 = (gcnew System::Windows::Forms::Button());
this-> SuspendLayout();
// poga1
šī->poga1->Atrašanās vieta = Sistēma::Zīmējums::Punkts(60, 76);
this->button1->Name = L"poga1";
šī->poga1->Izmērs = Sistēma::Zīmējums::Izmērs(75, 23);
this->button1->TabIndex = 0;
šī->poga1->Teksts = L"poga1";
this->button1->UseVisualStyleBackColor = true;
this->button1->Click += gcnew System::EventHandler(this, &Form1::button1_Click);
// Forma1
this->AutoScaleDimensions = Sistēma::Zīmējums::IzmērsF(6, 13);
this->AutoScaleMode = Sistēma::Windows::Forms::AutoScaleMode::Fonts;
this->ClientSize = Sistēma::Zīmējums::Izmērs(292, 266);
this->Controls-> Add(this->button1);
šis->nosaukums = L"Form1";
šis->Teksts = L"Form1";
this->ResumeLayout(false);

}
#pragmaendreģions

Statiskā sistēma::Windows::Forms::Form ^frm = gcnew Sistēma::Windows::Forms::Form();
privāts: System::Void button1_Click(Sistēma::Objekts^ sūtītājs, Sistēma::EventArgs^ e) (
frm->Rādīt();
}
};
}

DAŽĀDĀS VIETĀS TIEK REGULĒTS NOSAUKUMA PIEVIENOJUMS!