Űrlapok hozzáadása. A formák közötti kölcsönhatás

Ha több elemhez hosszú űrlapot használ, előfordulhat, hogy gyorsan le kell részleteznie, hogy több információt tudjon meg az egyik elemről. Az Accessben ehhez létre kell hozni egy kapcsolatot a többelemes űrlapok és az egyelemes űrlapok között. Ha több elemből álló űrlapon választ ki egy elemet, megnyílik az egyelemes űrlap, és további részleteket jelenít meg.

Megjegyzések:

Űrlapok létrehozása

A legtöbb esetben egy szemcsés konfigurációban két űrlap ugyanazon a táblán vagy lekérdezésen alapul. Ha már van néhány használandó űrlapja (az egyik egy táblázatos vagy többelemes űrlap, a másik pedig egy tételes vagy részletező űrlap), kihagyhatja ezt a részt. Ellenkező esetben használja a következő eljárásokat a létrehozásukhoz.

Hozzon létre egy táblázatos űrlapot vagy űrlapot több elemmel

    A navigációs ablakban válassza ki azt a táblát vagy lekérdezést, amely a táblázatos formában megjeleníteni kívánt adatokat tartalmazza.

    Válassza ki az elemeket Teremtés > Egyéb formák, és akkor - Több elem vagy asztal a kívánt formatípustól függően.

    Mentse el és zárja be az űrlapot.

további információ Több elem űrlapjaival kapcsolatban lásd: Alakzat létrehozása a Több elem eszközzel.

Hozzon létre egy tételes űrlapot vagy részleteket tartalmazó űrlapot

    A navigációs ablakban kattintson arra a táblázatra vagy lekérdezésre, amely a részletek űrlapon megjeleníteni kívánt adatokat tartalmazza. Valószínűleg ugyanaz a tábla vagy lekérdezés lesz, mint amit az első űrlapnál használt.

    Válassza ki az elemeket Teremtés > Forma.

    Végezze el a szükséges módosításokat, mentse el és zárja be az űrlapot.

További információkért lásd: Űrlap létrehozása az Alakzat eszközzel.

Logika hozzáadása a részletek űrlap megnyitásához

Most nézzük meg, hogyan adhatunk hozzá egy kis makrót egy többelemes vagy táblázatos űrlaphoz, amely megnyitja a részleteket tartalmazó űrlapot, és megjeleníti a megfelelő elemet.

Ne aggódjon, ha nincs sok tapasztalata a makrók terén. Egyszerűen kimásolhatja és beillesztheti az XML-t az ebben a cikkben ismertetett eljárásból.

    Ha táblázatos űrlapot használ, kattintson rá duplán a navigációs ablakban a megnyitásához. Több elemből álló űrlap esetén kattintson rá Jobb klikk egérrel a navigációs ablakban, és válassza ki Elrendezési mód.

    Nyomja meg az F4 billentyűt a tulajdonságok ablakának megnyitásához, ha az még nincs megnyitva.

    Kattintson arra az oszlopra, amelybe hozzá szeretné adni a makrót. Ez az az oszlop, amelyre kattintva megnyílik a részletek űrlapja a makró futtatása után. A fenti képen a makró hozzáadódik az frmContactList oszlophoz.

Tanács:(TIPP) Több oszlophoz is hozzáadhat makrókat.

A számítógépes adatbázisokban található makrókról további információkért lásd:

Utolsó frissítés: 2015.10.31

Ha másik űrlapot szeretne hozzáadni a projekthez, kattintson a jobb gombbal a projekt nevére a Megoldáskezelő ablakban, és válassza a Hozzáadás (Hozzáadás)->Windows űrlap...

Adjunk nevet az új űrlapnak, pl. Form2.cs:

Tehát hozzáadtunk egy második űrlapot a projekthez. Most próbáljuk meg megvalósítani a két forma közötti interakciót. Tegyük fel, hogy az első űrlap meghívja a második űrlapot, amikor a gombra kattintanak. Először adjunk hozzá egy gombot az első Form1 űrlaphoz, és kattintson duplán a gombra a kódfájl eléréséhez. Így belépünk a gombkattintás eseménykezelőjébe, amely alapértelmezés szerint a gombra dupla kattintás után jön létre:

Privát void button1_Click(objektum feladó, EventArgs e) ( )

Most adjuk hozzá a második űrlap hívókódját. A második űrlapunkat Form2-nek hívják, így először létrehozunk egy objektumot ebből az osztályból, majd meghívjuk a Show metódust, hogy megjelenítsük a képernyőn:

Privát void button1_Click(objektum feladó, EventArgs e) ( Form2 newForm = new Form2(); newForm.Show(); )

Most tegyük az ellenkezőjét – úgy, hogy a második forma az elsőt érintse. Míg a második forma nem tud az első létezéséről. Ennek kijavításához valahogyan át kell vinnie az első űrlapra vonatkozó információkat a második űrlapra. Ehhez az űrlapra mutató hivatkozást fogunk átadni a konstruktorban.

Tehát menjünk tovább a második űrlapra, és térjünk át annak kódjára - kattintson a jobb gombbal az űrlapra, és válassza a Kód megtekintése (Kód megtekintése) lehetőséget. Míg üres és csak konstruktort tartalmaz. Mivel a C# támogatja a metódusok túlterhelését, több metódust és konstruktort is létrehozhatunk különböző paraméterekkel, és a helyzettől függően egyet meghívhatunk belőlük. Tehát változtassuk meg a második űrlap kódfájlját a következőre:

Rendszer használata; a System.Collections.Generic használatával; a System.ComponentModel használatával; a System.Data használatával; a System.Drawing használatával; a System.Linq; a System.Text használatával; a System.Threading.Tasks használatával; a System.Windows.Forms használatával; névtér HelloApp ( nyilvános részleges osztály Form2: Form ( public Form2() ( InitializeComponent(); ) public Form2(Form1 f) ( InitializeComponent(); f.BackColor = Color.Yellow; ) ) )

Valójában egy új publikus Form2(Form1 f) konstruktort adtunk ide, amelyben megkapjuk az első űrlapot, és sárgára állítjuk a hátterét. Most menjünk az első űrlap kódjához, ahol meghívtuk a második űrlapot, és változtassa meg a következőre:

Privát void button1_Click(objektum feladó, EventArgs e) ( Form2 newForm = new Form2(this); newForm.Show(); )

Mert ebben az esetben kulcsszó ez egy hivatkozást jelent az aktuális objektumra - a Form1 objektumra, majd a második űrlap létrehozásakor megkapja azt (a hivatkozást), és ezen keresztül kezeli az első űrlapot.

Most a gombra kattintás után létrehozunk egy második űrlapot, amely azonnal megváltoztatja az első űrlap színét.

Az aktuális űrlaphoz objektumokat is létrehozhatunk:

Privát void button1_Click(objektum küldő, EventArgs e) ( Form1 newForm1 = new Form1(); newForm1.Show(); Form2 newForm2 = new Form2(newForm1); newForm2.Show(); )

Ha több űrlappal dolgozik, ne feledje, hogy az egyik a fő – amely először indul el a Program.cs fájlban. Ha egy csomó űrlapunk van egyszerre nyitva, akkor a fő bezárásakor a teljes alkalmazás bezárul, és ezzel együtt az összes többi űrlap is.


Nyilvánvaló, hogy ha létrehoz egy típusmutatót<что там>::Az űrlap működni fog, de szükségem van egy már létrehozott űrlapra, gombokkal stb. (általában különböző vezérlők), de manuálisan (azaz programozottan) nem akarom tiszta formán előírni őket (sok írás és nem az, hogy jól érted). Ez az, ami még mindig megzavar ....... Amikor egy már létrehozott projekthez hozzáadtam az űrlapot, az új Form2.h fejlécfájlban így írták:

#pragma egyszer
#include "Form1.h"

névtér használata System;



névtér használatával System::Data;

névtér My1(

///
/// Összegzés a 2. űrlaphoz



public ref class Form2: public System::Windows::Forms::Form
{
nyilvános:
2. űrlap (érvénytelen)
{
InitializeComponent();

}

Védett:

~Form2()
{
ha (összetevők)
{
törölje az összetevőket;
}
}

Magán:



///
{
this->components = gcnew System::ComponentModel::Container();
this->Size = System::Drawing::Size(300,300);
ez->Szöveg = L"Form2";
this->Padding = System::Windows::Forms::Padding(0);
ezt->
}
#pragmaendrégió
};
}

bár a Form1.h-ban így van írva:

#pragma egyszer
#include "Form2.h"

névtér My1(

Namespace System használata;
névtér használata System::ComponentModel;
névtér használata System::Collections;
névtér használata System::Windows::Forms;
névtér használatával System::Data;
névtér használata System::Drawing;

///
/// Összegzés az 1. űrlaphoz
/// FIGYELMEZTETÉS: Ha megváltoztatja ennek az osztálynak a nevét, módosítania kell a
/// "Erőforrás fájlnév" tulajdonság a felügyelt erőforrás-fordító eszközhöz
/// az összes .resx fájlhoz társítva, amelytől ez az osztály függ. Másképp,
/// a tervezők nem fognak tudni megfelelően kommunikálni a localized programmal
/// ehhez az űrlaphoz társított erőforrások.
public ref class Form1: public System::Windows::Forms::Form
{
nyilvános:
1. űrlap (érvénytelen)
{
InitializeComponent();
//TODO: Add ide a konstruktor kódot
}

Védett:
/// Tisztítsa meg a használt erőforrásokat.
~Form1()
{
ha (összetevők)
{
törölje az összetevőket;
}
}
privát: System::Windows::Forms::Button^ button1;
védett:

Magán:
/// Kötelező tervezői változó.
System::ComponentModel::Container ^komponensek;

#pragma region A Windows Form Designer által generált kód
/// A tervezői támogatás kötelező metódusa – ne módosítsa
/// ennek a metódusnak a tartalmát a kódszerkesztővel.
void InitializeComponent(void)
{
this->button1 = (gcnew System::Windows::Forms::Button());
this->SuspendLayout();
// gomb1
this->button1->Location = Rendszer::Rajz::Pont(60, 76);
ez->gomb1->Név = L"gomb1";
this->button1->Size = Rendszer::Rajz::Méret(75, 23);
this->button1->TabIndex = 0;
this->button1->Text = L"button1";
this->button1->UseVisualStyleBackColor = igaz;
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(292, 266);
this->Controls->Add(this->button1);
ez->Név = L"Űrlap1";
ez->Szöveg = L"Form1";
this->ResumeLayout(false);

}
#pragmaendrégió

Statikus rendszer::Windows::Forms::Form ^frm = gcnew System::Windows::Forms::Form();
privát: System::Void button1_Click(Rendszer::Object^ feladó, Rendszer::EventArgs^ e) (
frm->Megjelenítés();
}
};
}

KÜLÖNBÖZŐ HELYEN A NÉVTÉR CSATLAKOZTATÁSA SZABÁLYOZOTT!



Betöltés...
Top