Koti / Internet / Yhdistä kaksi muotoa c. Lomakkeiden lisääminen. Vuorovaikutus muotojen välillä. Luo yksittäisen tuotteen lomake tai tietolomake

Yhdistä kaksi muotoa c. Lomakkeiden lisääminen. Vuorovaikutus muotojen välillä. Luo yksittäisen tuotteen lomake tai tietolomake

Viimeisin päivitys: 31.10.2015

Jos haluat lisätä projektiin toisen lomakkeen, napsauta hiiren kakkospainikkeella projektin nimeä Solution Explorer -ikkunassa ja valitse Lisää (Lisää)-> Windows Form...

Annetaan uudelle lomakkeelle jokin nimi, esim. Lomake2.cs:

Joten olemme lisänneet projektiin toisen lomakkeen. Yritetään nyt toteuttaa näiden kahden muodon välinen vuorovaikutus. Oletetaan, että ensimmäinen lomake kutsuu toista lomaketta, kun painiketta napsautetaan. Lisätään ensin painike ensimmäiseen lomakkeeseen Form1 ja kaksoisnapsautetaan painiketta päästäksesi kooditiedostoon. Joten pääsemme painikkeen napsautustapahtuman käsittelijään, joka luodaan oletuksena painikkeen kaksoisnapsautuksen jälkeen:

Yksityinen void button1_Click(objektin lähettäjä, EventArgs e) ( )

Lisätään nyt siihen toisen lomakkeen kutsukoodi. Toinen muotomme on nimeltään Form2, joten ensin luomme tämän luokan objektin ja sitten kutsumme Show-metodia näyttääksesi sen näytöllä:

Yksityinen void button1_Click(objektin lähettäjä, TapahtumaArgs e) ( Lomake2 uusi Lomake = uusi Lomake2(); uusi Lomake.Näytä(); )

Tehdään nyt päinvastoin - niin että toinen muoto vaikuttaa ensimmäiseen. Vaikka toinen muoto ei tiedä ensimmäisen olemassaolosta. Korjataksesi tämän, sinun on jotenkin siirrettävä tiedot ensimmäisestä lomakkeesta toiseen lomakkeeseen. Käytämme tätä varten linkin välittämistä lomakkeelle rakentajassa.

Joten siirrytään toiseen lomakkeeseen ja siirrytään sen koodiin - napsauta lomaketta hiiren kakkospainikkeella ja valitse Näytä koodi (Näytä koodi). Vaikka se on tyhjä ja sisältää vain rakentajan. Koska C# tukee menetelmän ylikuormitusta, voimme luoda useita menetelmiä ja konstruktoreita erilaisilla parametreilla ja kutsua niistä yhden tilanteen mukaan. Muutetaan siis toisen lomakkeen kooditiedosto seuraavaksi:

Järjestelmän käyttö; käyttäen System.Collections.Generic; käyttäen System.ComponentModel; käyttäen System.Data; käyttämällä System.Drawingia; käyttäen System.Linq; käyttäen System.Text; käyttäen System.Threading.Tasks; käyttäen System.Windows.Forms; nimiavaruus HelloApp ( julkinen osaluokka Form2: Form ( julkinen Form2() ( InitializeComponent(); ) public Form2(Form1 f) ( InitializeComponent(); f.BackColor = Color.Yellow; ) ) )

Itse asiassa lisäsimme juuri tänne uusi rakentaja public Form2(Form1 f) , josta saamme ensimmäisen lomakkeen ja asetamme sen taustan keltaiseksi. Siirrytään nyt ensimmäisen lomakkeen koodiin, jossa kutsuimme toista lomaketta ja muutetaan se seuraavaksi:

Yksityinen void button1_Click(objektin lähettäjä, TapahtumaArgs e) ( Lomake2 uusi Lomake = uusi Lomake2(tämä); uusi Lomake.Näytä(); )

Koska sisään Tämä tapaus Tämä avainsana edustaa viittausta nykyiseen objektiin - Form1-objektiin, jolloin se vastaanottaa toista lomaketta luodessaan (linkin) ja hallitsee ensimmäistä lomaketta sen kautta.

Nyt, napsautettuaan painiketta, luomme toisen lomakkeen, joka muuttaa välittömästi ensimmäisen lomakkeen värin.

Voimme myös luoda objekteja nykyiseen muotoon:

Yksityinen void-painike1_Napsauta(objektin lähettäjä, TapahtumaArgs e) ( Lomake1 uusi Lomake1 = uusi lomake1(); uusi Lomake1.Näytä(); Lomake2 uusi Lomake2 = uusi lomake2(uusilomake1); uusi Lomake2.Näytä(); )

Kun työskentelet useiden lomakkeiden kanssa, muista, että yksi niistä on tärkein - joka käynnistetään ensin Program.cs-tiedostossa. Jos meillä on useita lomakkeita auki samanaikaisesti, niin pääsivun sulkeuduttua sulkeutuu koko sovellus ja sen mukana kaikki muut lomakkeet.

Jos sinulla on pitkä lomake useille kohteille, saatat joskus haluta syventyä nopeasti saadaksesi lisätietoja yhdestä kohdasta. Accessissa tämä edellyttää linkin luomista moniosaisen lomakkeen ja yksiosaisen lomakkeen välille. Kun valitset kohteen usean kohteen lomakkeesta, yhden kohteen lomake avautuu ja näyttää lisätietoja.

Huomautuksia:

Luo lomakkeita

Useimmissa tapauksissa kaksi muotoa rakeisessa kokoonpanossa perustuvat samaan taulukkoon tai kyselyyn. Jos sinulla on jo pari lomaketta, joita sinun on käytettävä (toinen on taulukko- tai moniosainen lomake ja toinen on yksittäinen lomake tai tietolomake), voit ohittaa tämän osion. Muussa tapauksessa käytä seuraavia toimenpiteitä niiden luomiseen.

Luo taulukkolomake tai lomake, jossa on useita elementtejä

    Valitse siirtymisruudusta taulukko tai kysely, joka sisältää tiedot, jotka haluat näyttää taulukkomuodossa.

    Valitse kohteita Luominen > Muut muodot, ja sitten - Useita elementtejä tai Pöytä riippuen halutusta lomaketyypistä.

    Tallenna ja sulje lomake.

Lisätietoja usean kohteen lomakkeista on kohdassa Lomakkeen luominen Multiple Items -työkalulla.

Luo yksittäisen tuotteen lomake tai tietolomake

    Napsauta siirtymisruudussa taulukkoa tai kyselyä, joka sisältää tiedot, jotka haluat näyttää tietolomakkeessa. Se on todennäköisesti sama taulukko tai kysely, jota käytit ensimmäisessä lomakkeessa.

    Valitse kohteita Luominen > Lomake.

    Tee tarvittavat muutokset, tallenna ja sulje lomake.

Lisätietoja on kohdassa Lomakkeen luominen muototyökalulla.

Lisätään logiikkaa avataksesi tietolomakkeen

Katsotaanpa nyt kuinka lisätä pieni makro moniosaiseen tai taulukkolomakkeeseen, joka avaa tietolomakkeen ja näyttää oikean kohteen.

Älä huoli, jos sinulla ei ole paljon kokemusta makroista. Voit yksinkertaisesti kopioida ja liittää XML:n tämän artikkelin menettelystä.

    Jos käytät taulukkolomaketta, avaa se kaksoisnapsauttamalla sitä siirtymisruudussa. Jos kyseessä on usean kohteen lomake, napsauta sitä hiiren kakkospainikkeella siirtymisruudussa ja valitse Asettelutila.

    Paina F4-näppäintä avataksesi ominaisuusikkunan, jos se ei ole jo auki.

    Napsauta saraketta, johon haluat lisätä makron. Tämän sarakkeen pitäisi olla se sarake, jota napsauttamalla avautuu tietolomake makron suorittamisen jälkeen. Yllä olevassa kuvassa makro lisätään frmContactList-sarakkeeseen.

Neuvoja:(VINKKI) Voit lisätä makroja useisiin sarakkeisiin.

Lisätietoja makroista tietokonetietokannassa on kohdassa


On selvää, että jos luot tyyppiosoittimen<что там>:: Lomake toimii, mutta tarvitsen jo luodun lomakkeen, jossa on painikkeita jne. (yleensä erilaisia ​​säätimiä), mutta manuaalisesti (eli ohjelmallisesti) en halua määrätä niitä puhtaaseen muotoon (paljon kirjoitusta eikä sitä, että saat sen oikein). Tämä hämmentää minua edelleen .... Kun lisäsin lomakkeen jo luotuun projektiin, uudessa otsikkotiedostossa Form2.h se kirjoitettiin näin:

#pragma kerran
#include "Form1.h"

käyttäen nimiavaruutta System;



käyttäen nimiavaruutta System::Data;

nimiavaruus My1(

///
/// Yhteenveto lomakkeelle 2



public ref class Form2: public System::Windows::Forms::Form
{
julkinen:
Lomake2 (tyhjä)
{
InitializeComponent();

}

Suojattu:

~lomake2()
{
jos (komponentit)
{
poistaa komponentit;
}
}

Yksityinen:



///
{
this->komponentit = gcnew System::ComponentModel::Container();
this->Size = System::Drawing::Size(300,300);
tämä->Teksti = L"Form2";
this->Padding = System::Windows::Forms::Padding(0);
tämä->
}
#pragmaendalue
};
}

vaikka Form1.h:ssa se on kirjoitettu näin:

#pragma kerran
#include "Form2.h"

nimiavaruus My1(

Nimiavaruusjärjestelmän käyttäminen;
käyttäen nimiavaruutta System::ComponentModel;
käyttäen nimiavaruutta System::Collections;
käyttäen nimiavaruutta System::Windows::Forms;
käyttäen nimiavaruutta System::Data;
käyttäen nimiavaruutta System::Drawing;

///
/// Yhteenveto lomakkeelle 1
/// VAROITUS: Jos muutat tämän luokan nimeä, sinun on muutettava
/// Hallittujen resurssien kääntäjätyökalun "Resurssitiedoston nimi" -ominaisuus
/// liittyvät kaikkiin .resx-tiedostoihin, joista tämä luokka riippuu. Muuten,
/// suunnittelijat eivät voi olla kunnolla vuorovaikutuksessa lokalisoitujen kanssa
/// tähän lomakkeeseen liittyvät resurssit.
public ref class Form1: public System::Windows::Forms::Form
{
julkinen:
Lomake1 (tyhjä)
{
InitializeComponent();
//TODO: Lisää rakentajakoodi tähän
}

Suojattu:
/// Siivoa kaikki käytetyt resurssit.
~lomake1()
{
jos (komponentit)
{
poistaa komponentit;
}
}
yksityinen: Järjestelmä::Windows::Forms::Button^ button1;
suojattu:

Yksityinen:
/// Vaadittu suunnittelijamuuttuja.
System::ComponentModel::Container ^komponentit;

#pragma region Windows Form Designerin luoma koodi
/// Suunnittelijan tuen pakollinen menetelmä - älä muokkaa
/// tämän menetelmän sisältö koodieditorilla.
void InitializeComponent(void)
{
this->button1 = (gcnew System::Windows::Forms::Button());
this->SuspendLayout();
// painike1
this->button1->Location = System::Drawing::Point(60, 76);
tämä->painike1->Nimi = L"painike1";
tämä->painike1->Koko = System::Drawing::Size(75, 23);
tämä->painike1->TabIndex = 0;
tämä->painike1->Teksti = L"painike1";
this->button1->UseVisualStyleBackColor = tosi;
tämä->painike1->Napsauta += gcnew System::EventHandler(this, &Form1::button1_Click);
// Lomake1
this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
this->AutoScaleMode = Järjestelmä::Windows::Forms::AutoScaleMode::Font;
this->ClientSize = System::Drawing::Size(292, 266);
this->Controls->Add(this->button1);
tämä->Nimi = L"Lomake1";
tämä->Teksti = L"Lomake1";
this->ResumeLayout(false);

}
#pragmaendalue

Staattinen järjestelmä::Windows::Forms::Form ^frm = gcnew System::Windows::Forms::Form();
yksityinen: Järjestelmä::Void button1_Click(Järjestelmä::Objekti^ lähettäjä, Järjestelmä::EventArgs^ e) (
frm->Näytä();
}
};
}

ERI PAIKKOISSA NIMITILAN LIITTÄMINEN ON SÄÄNNELTY!