Menambahkan formulir. Interaksi antar bentuk

Jika Anda memiliki formulir panjang untuk beberapa item, terkadang Anda mungkin ingin menelusuri dengan cepat untuk melihat informasi selengkapnya tentang salah satu item. Di Access, ini memerlukan pembuatan tautan antara formulir multi-item dan formulir item tunggal. Saat Anda memilih item dalam formulir multi-item, formulir item tunggal akan terbuka dan menampilkan detail tambahan.

Catatan:

Buat Formulir

Dalam kebanyakan kasus, dua formulir dalam konfigurasi granular didasarkan pada tabel atau kueri yang sama. Jika Anda sudah memiliki beberapa formulir yang perlu Anda gunakan (salah satunya adalah formulir tabel atau beberapa item dan yang lainnya adalah formulir satu item atau detail), Anda dapat melewati bagian ini. Jika tidak, gunakan prosedur berikut untuk membuatnya.

Buat Formulir Tabel atau Formulir dengan Banyak Elemen

    Di Panel Navigasi, pilih tabel atau kueri yang berisi data yang ingin Anda tampilkan dalam bentuk tabel.

    Pilih item Penciptaan > Bentuk lain, kemudian - Beberapa elemen atau Meja tergantung pada jenis formulir yang diinginkan.

    Simpan dan tutup formulir.

informasi tambahan Untuk formulir untuk banyak item, lihat Membuat bentuk menggunakan alat Banyak Item .

Buat Formulir Item Tunggal atau Formulir Detail

    Di Panel Navigasi, klik tabel atau kueri yang berisi data yang ingin Anda tampilkan dalam formulir detail. Kemungkinan besar tabel atau kueri yang sama yang Anda gunakan untuk formulir pertama.

    Pilih item Penciptaan > Membentuk.

    Lakukan perubahan yang diperlukan, simpan dan tutup formulir.

Untuk informasi selengkapnya, lihat Membuat formulir dengan alat Bentuk .

Menambahkan logika untuk membuka formulir detail

Sekarang mari kita lihat cara menambahkan makro kecil ke formulir multi-item atau tabel yang akan membuka formulir detail dan menampilkan item yang benar.

Jangan khawatir jika Anda tidak memiliki banyak pengalaman dengan makro. Anda cukup menyalin dan menempelkan XML dari prosedur di artikel ini.

    Jika Anda menggunakan formulir tabel, klik dua kali di Panel Navigasi untuk membukanya. Untuk formulir multi-item, klik formulir tersebut klik kanan mouse di Panel Navigasi dan pilih Modus tata letak.

    Tekan tombol F4 untuk membuka jendela properti jika belum dibuka.

    Klik kolom tempat Anda ingin menambahkan makro. Ini harus menjadi kolom yang, ketika diklik, akan membuka formulir detail setelah menjalankan makro. Pada gambar di atas, makro ditambahkan ke kolom frmContactList.

Nasihat:(TIP) Anda dapat menambahkan makro ke beberapa kolom.

Untuk informasi selengkapnya tentang makro di database komputer, lihat

Pembaruan terakhir: 31.10.2015

Untuk menambahkan formulir lain ke proyek, klik kanan pada nama proyek di jendela Solution Explorer dan pilih Add (Add)->Windows Form...

Mari beri nama pada formulir baru, misalnya, Form2.cs:

Jadi, kami telah menambahkan formulir kedua ke proyek. Sekarang mari kita coba menerapkan interaksi antara kedua bentuk tersebut. Katakanlah formulir pertama akan memanggil formulir kedua saat tombol diklik. Pertama, mari tambahkan tombol ke formulir pertama Form1 dan klik dua kali pada tombol untuk membuka file kode. Jadi, kita akan masuk ke event handler klik tombol, yang dibuat secara default setelah mengklik dua kali tombol:

Private void button1_Click(pengirim objek, EventArgs e) ( )

Sekarang mari tambahkan kode panggilan dari bentuk kedua ke dalamnya. Bentuk kedua kita disebut Form2, jadi pertama-tama kita membuat objek dari kelas ini, lalu kita memanggil metode Show untuk menampilkannya di layar:

Private void button1_Click(pengirim objek, EventArgs e) ( Form2 newForm = new Form2(); newForm.Show(); )

Sekarang mari kita lakukan sebaliknya - sehingga bentuk kedua memengaruhi bentuk pertama. Sedangkan bentuk kedua tidak tahu tentang keberadaan yang pertama. Untuk memperbaikinya, Anda perlu mentransfer informasi tentang formulir pertama ke formulir kedua. Untuk melakukan ini, kami akan menggunakan tautan ke formulir di konstruktor.

Jadi mari beralih ke formulir kedua dan beralih ke kodenya - klik kanan pada formulir dan pilih Lihat Kode (Lihat kode). Meskipun kosong dan hanya berisi konstruktor. Karena C# mendukung kelebihan metode, kita dapat membuat banyak metode dan konstruktor dengan parameter berbeda dan memanggil salah satunya tergantung pada situasinya. Jadi, mari kita ubah file kode dari bentuk kedua sebagai berikut:

Menggunakan Sistem; menggunakan System.Collections.Generic; menggunakan System.ComponentModel; menggunakan Sistem.Data; menggunakan System.Drawing; menggunakan System.Linq; menggunakan Sistem.Teks; menggunakan System.Threading.Tasks; menggunakan System.Windows.Forms; namespace HelloApp ( public partial class Form2: Form ( public Form2() ( InitializeComponent(); ) public Form2(Form1 f) ( InitializeComponent(); f.BackColor = Color.Yellow; ) ) )

Faktanya, kami baru saja menambahkan konstruktor Form2(Form1 f) publik baru di sini, di mana kami mendapatkan formulir pertama dan mengatur latar belakangnya menjadi kuning. Sekarang mari kita pergi ke kode bentuk pertama, di mana kita memanggil bentuk kedua dan mengubahnya sebagai berikut:

Private void button1_Click(pengirim objek, EventArgs e) ( Form2 newForm = new Form2(this); newForm.Show(); )

Karena dalam hal ini kata kunci ini mewakili referensi ke objek saat ini - objek Form1, lalu saat membuat formulir kedua, ia akan menerimanya (tautan) dan mengelola formulir pertama melaluinya.

Nah, setelah mengklik tombol tersebut, kita akan membuat form kedua yang akan langsung mengubah warna form pertama.

Kami juga dapat membuat objek untuk formulir saat ini:

Private void button1_Click(pengirim objek, EventArgs e) ( Form1 newForm1 = new Form1(); newForm1.Show(); Form2 newForm2 = new Form2(newForm1); newForm2.Show(); )

Saat bekerja dengan berbagai formulir, perlu diingat bahwa salah satunya adalah yang utama - yang diluncurkan pertama kali di file Program.cs. Jika kita membuka banyak formulir pada saat yang sama, maka ketika yang utama ditutup, seluruh aplikasi ditutup, dan dengan itu semua formulir lainnya.


Jelas bahwa jika Anda membuat pointer tipe<что там>:: Formulir akan berfungsi, tetapi saya memerlukan formulir yang sudah dibuat, dengan tombol, dll. (secara umum, kontrol yang berbeda), tetapi secara manual (yaitu secara terprogram) saya tidak ingin meresepkannya pada formulir yang bersih (banyak tulisan dan bukan fakta bahwa Anda melakukannya dengan benar). Inilah yang masih membingungkan saya ....... Ketika saya menambahkan formulir ke proyek yang sudah dibuat, di file header baru Form2.h tertulis seperti ini:

#pragma sekali
#sertakan "Formulir1.h"

menggunakan Sistem namespace;



menggunakan namespace System::Data;

ruang nama My1(

///
/// Ringkasan untuk Form2



kelas referensi publik Form2: Sistem publik::Windows::Formulir::Formulir
{
publik:
Formulir2 (batal)
{
InisialisasiKomponen();

}

Terlindung:

~Formulir2()
{
jika (komponen)
{
hapus komponen;
}
}

Pribadi:



///
{
this->components = gcnew System::ComponentModel::Container();
this->Size = System::Drawing::Size(300.300);
this->Teks = L"Form2";
this->Padding = System::Windows::Forms::Padding(0);
ini->
}
#pragmaendregion
};
}

padahal di Form1.h tertulis seperti ini:

#pragma sekali
# sertakan "Formulir2.h"

ruang nama My1(

Menggunakan Sistem namespace;
menggunakan namespace System::ComponentModel;
menggunakan namespace System::Collections;
menggunakan namespace System::Windows::Forms;
menggunakan namespace System::Data;
menggunakan namespace System::Drawing;

///
/// Ringkasan untuk Form1
/// PERINGATAN: Jika Anda mengubah nama kelas ini, Anda harus mengubah
/// Properti "Nama File Sumber Daya" untuk alat kompiler sumber daya terkelola
/// terkait dengan semua file .resx yang bergantung pada kelas ini. Jika tidak,
/// desainer tidak akan dapat berinteraksi dengan baik dengan yang dilokalkan
/// sumber daya yang terkait dengan formulir ini.
kelas referensi publik Form1: Sistem publik::Windows::Formulir::Formulir
{
publik:
Formulir1 (batal)
{
InisialisasiKomponen();
//TODO: Tambahkan kode konstruktor di sini
}

Terlindung:
/// Bersihkan semua sumber daya yang sedang digunakan.
~Formulir1()
{
jika (komponen)
{
hapus komponen;
}
}
pribadi: System::Windows::Forms::Tombol^ tombol1;
terlindung:

Pribadi:
/// Variabel desainer yang diperlukan.
System::ComponentModel::Container ^components;

#pragma region Windows Form Designer menghasilkan kode
/// Metode yang diperlukan untuk dukungan Desainer - jangan diubah
/// isi metode ini dengan editor kode.
batal MenginisialisasiKomponen(batal)
{
this->button1 = (gcnew System::Windows::Forms::Button());
this->SuspendLayout();
// tombol1
this->button1->Location = System::Drawing::Point(60, 76);
this->tombol1->Nama = L"tombol1";
this->button1->Size = System::Drawing::Size(75, 23);
this->button1->TabIndex = 0;
this->tombol1->Teks = L"tombol1";
this->button1->UseVisualStyleBackColor = true;
ini->button1->Klik += gcnew System::EventHandler(ini, &Form1::button1_Click);
// Formulir1
this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->ClientSize = System::Drawing::Size(292, 266);
ini->Kontrol->Tambah(ini->tombol1);
this->Nama = L"Form1";
this->Teks = L"Form1";
ini->ResumeLayout(false);

}
#pragmaendregion

Sistem Statis::Windows::Forms::Form ^frm = gcnew System::Windows::Forms::Form();
pribadi: System::Void button1_Click(System::Object^ pengirim, System::EventArgs^ e) (
frm->Tampilkan();
}
};
}

DI TEMPAT YANG BERBEDA KONEKSI NAMESPACE DIATUR!



Memuat...
Atas