MENAMPILKAN KOTAK DIALOG
APA YANG AKAN ANDA PELAJARI PADA BAB INI:
ü Menciptakan
sebuah kotak pesan menggunakan sejumlah tombol dan ikon.
ü Menciptakan
sebuah kotak dialog Open yang
memampukan Anda membuka file.
ü Menciptakan
sebuah kotak dilaog Save yang
memampukan Anda menyimpan file.
ü Menciptakan
sebuah kotak dialog Font yang
memampukan Anda untuk menerapkan font terseleksi pada teks.
ü Menciptakan
sebuah kotak dialog Color yang memampukan
Anda untuk mendefinisikan dan memilih warna.
ü Menciptakan
sebuah kotak dialog Print yang
memampukan Anda untuk mencetak teks dari aplikasi Anda.
ü Menciptakan
sebuah kotak dialog Browse yang
memampukan Anda untuk menjelajah folder.
Visual Basic (sejak versi
2010) menawarkan sejumlah kotak dialog pustaka yang membantu Anda untuk
menyediakan sejumlah antarmuka yang kaya pada aplikasi Anda. Kotak-kotak dialog
ini menawarkan antarmuka yang sama seperti pada kebanyakan aplikasi Windows.
Kotak tersebut juga menyediakan sejumlah properti dan metode yang dapat Anda
pakai untuk memodifikasi agar memenuhi kebutuhan Anda.
Bab ini mengeksplorasi
kotak-kotak dialog ini secara detil dan menunjukkan bagaimana Anda dapat
menggunakannya pada aplikasi Anda untuk membantu Anda membangun aplikasi dengan
tampilan profesional.
KOTAK PESAN
MessageBox merupakan salah satu kotak dialog yang akan sering
digunakan oleh seorang pengembang piranti lunak. Kotak dialog ini dapat dipakai
untuk menampilkan pesan yang dibutuhkan user dan menerima masukan terkait
dengan pilihan user. Kotak dialog ini sangat handal; Anda dapat memodifikasinya
untuk menampilkan sejumlah ikon pada pesan Anda dan untuk memilih tombol mana
yang akan ditampilkan.
Pada operasi komputer
sehari-hari, Anda tentu telah sering melihat sejumlah kotak pesan yang
menampilkan tiap ikon yang ditunjukkan pada Gambar 6.1. Pada bagian ini, Anda
akan belajar bagaimana menciptakan dan menampilkan kotak pesan yang menggunakan
ikon-ikon ini.
Ikon pertama pada Gambar
6.1 memiliki dua nama: Asterisk dan Information. Ikon kedua juga memiliki
dua nama: Exclamation dan Warning. Ikon ketiga memiliki tiga
nama: Error, Hand, dan Stop. Ikon
terakhir pada Gambar 6.1 hanya memiliki satu nama: Question.
Ketika membangun sebuah
aplikasi Windows, pada saat-saat tertentu Anda perlu meminta user untuk
memasukkan informasi atau Anda perlu menampilkan peringatan bahwa sesuatu tidak
diharapkan untuk terjadi atau bahwa sesuatu yang tidak diharapkan terjadi.
Sebagai contoh, dimisalkan bahwa user dari aplikasi Anda memodifikasi data
tertentu dan mencoba menutup aplikasi tanpa menyimpan data. Anda dapat
menampilkan sebuah kotak pesan yang membawa informasi atau ikon peringatan dan
pesan tertentu bahwa data yang tak tersimpan akan hilang. Anda juga dapat
menambahkan tombol OK dan Cancel untuk memampukan user untuk
melanjutkan atau membatalkan operasi.
Di sini lah dimana kotak
dialog MessageBox berguna: Ia dapat
dipakai untuk dengan cepat membangun kotak dialog yang meminta user untuk
memasukkan keputusan, memilih ikon, dan pilihan tombol. Semua fungsionalitas
ini juga dapat Anda pakai untuk menampilkan sebuah kotak pesan yang
menginformasikan user tentang validasi error, dan menampilkan error sistem yang
terjebak dalam penanganan error.
Sebelum Anda melihat
kode, Anda lebih dahulu perlu melihat kelas MessageBox. Metode Show
dipanggil untuk menampilkan MessageBox.
Judul, pesan, ikon, dan tombol yang ditampilkan ditentukan oleh
parameter-parameter yang dilewatkan kepada metode ini. Hal ini tampak rumit,
tetapi sebenarnya penggunaan MessageBox
sangat sederhana.
Ikon-Ikon Tersedia untuk MessageBox
Anda telah melihat empat
ikon tersedia pada Gambar 6.1. Tabel 6.1 mencantumkan ikon-ikon standar yang
dapat Anda tampilkan pada sebuah kotak pesan.
TABEL 6.1: Enumerasi Ikon pada Kotak Pesan
Nama Anggota
|
Penjelasan
|
Asterisk
Information
Error
Hand
Stop
Exclamation
Warning
Question
None
|
Menetapkan bahwa kotak
pesan menampilkan sebuah ikon informasi.
Menetapkan bahwa kotak
pesan menampilkan sebuah ikon informasi.
Menetapkan bahwa kotak
pesan menampilkan sebuah ikon error.
Menetapkan bahwa kotak
pesan menampilkan sebuah ikon error.
Menetapkan bahwa kotak
pesan menampilkan sebuah ikon error.
Menetapkan bahwa kotak
pesan menampilkan sebuah ikon eksklamasi.
Menetapkan bahwa kotak
pesan menampilkan sebuah ikon eksklamasi.
Menetapkan bahwa kotak
pesan menampilkan sebuah ikon tanda tanya.
Menetapkan bahwa kotak
pesan tidak menampilkan ikon apapun.
|
Tombol-Tombol Tersedia untuk MessageBox
Tabel 6.2 mencantumkan
beberapa kombinasi tombol yang dapat Anda tampilkan pada sebuah kotak pesan.
TABEL 6.2: Enumerasi Tombol pada Kotak Pesan
Nama Anggota
|
Penjelasan
|
AbortRetryIgnore
OK
OKCancel
RetryCancel
YesNo
YesNoCancel
|
Menetapkan bahwa kotak
pesan menampilkan tombol Abort, Retry, dan Ignore.
Menetapkan bahwa kotak
pesan menampilkan tombol OK.
Menetapkan bahwa kotak
pesan menampilkan tombol OK dan Cancel.
Menetapkan bahwa kotak
pesan menampilkan tombol Retry dan
Cancel.
Menetapkan bahwa kotak
pesan menampilkan tombol Yes dan No.
Menetapkan bahwa kotak
pesan menampilkan tombol Yes, No, dan Cancel.
|
Mengatur Tombol Default
Ketika menampilkan
tombol-tombol, Anda dapat menginstruksikan kotak dialog untuk mengatur tombol
default bagi Anda. Ini dapat memampukan user untuk membaca pesan dan menekan
kunci Enter untuk memanggil aksi untuk tombol default tanpa perlu mengklik
tombol itu dengan mouse. Tabel 6.3 mencantumkan opsi-opsi tombol default yang
disediakan.
TABEL 6.3: Enumerasi Tombol Default pada Kotak Pesan
Nama Anggota
|
Penjelasan
|
Button1
Button2
Button3
|
Menetapkan bahwa tombol
pertama pada kotak pesan adalah tombol default.
Menetapkan bahwa tombol
kedua pada kotak pesan adalah tombol default.
Menetapkan bahwa tombol
ketiga pada kotak pesan adalah tombol default.
|
Anda menetapkan tombol
default relatif terhadap tombol-tombol MessageBox,
dari kiri ke kanan. Oleh karena itu, jika Anda memiliki tombol Yes, No, dan Cancel
ditampilkan dan Anda memilih tombol ketiga sebagai tombol default, maka Cancel akan menjadi tombol default.
Sama halnya, jika Anda memilih tombol ketiga sebagai tombol default dan Anda
hanya memiliki dua tombol OK dan Cancel, maka tombol pertama menjadi
tombol default. Tombol default akan disorot sampai Anda menempatkan mouse di
atas tombol lain.
Opsi-Opsi Lainnya
Sejumlah opsi lain
tersedia pada enumerasi MessageBoxOptions
dan dapat dipakai pada kotak pesan. Opsi-opsi tersebut ditunjukkan pada Tabel
6.4.
TABEL 6.4: Opsi-opsi lain pada kotak pesan
Nama Anggota
|
Penjelasan
|
DefaultDesktopOnly
RightAlign
RtlReading
ServiceNotification
|
Menetapkan bahwa kotak
pesan akan ditampilkan pada desktop aktif.
Menetapkan bahwa teks
pada sebuah kotak pesan akan disejajarkan ke kanan, berlawanan dengan
penyajajaran kiri, yang merupakan penyejajaran default.
Menetapkan bahwa teks
pada sebuah kotak pesan akan ditampilkan dengan tatanan RTL (right to left)
atau dari kanan ke kiri.
Menetapkan bahwa kotak
pesan akan ditampilkan pada desktop aktif. Pemanggil adalah sebuah layanan
Windows yang memberitahukan event kepada user.
|
Sintaksis Metode Show
Anda memanggil metode Show untuk menampilkan kotak pesan.
Kode berikut menampilkan kotak pesan yang ditampilkan pada Gambar 6.2.
Perhatikan bahwa kode menetapkan teks yang ditampilkan pada kotak pesan sebagai
argumen pertama, yang diikuti dengan teks yang ditampilkan pada batang judul.
Kemudian Anda menetapkan tombol-tombol yang akan ditampilkan, yang diikuti
dengan jenis ikon yang ditampilkan di samping teks. Terakhir, Anda menetapkan
tombol yang ingin Anda tetapkan sebagai tombol default, pada kasus ini Button1.
GAMBAR 6.2
MessageBox.Show("Teksku",
"Kapsionku",
MessageBoxButtons.OKCancel,
MessageBoxIcon.Information,
MessageBoxDefaultButton.Button1)
Setelah Anda melihat
ikon, tombol, dan bidang tombol default yang tersedia, sekarang Anda perlu
melihat metode Show dari kelas MessageBox. Anda dapat menetapkan
metode Show dalam sejumlah cara;
sintaksis-sintaksis umum ditunjukkan berikut:
a. MessageBox.Show(teks pesan)
b. MessageBox.Show(teks pesan, kapsion)
c. MessageBox.Show(teks pesan, kapsion, tombol-tombol)
d. MessageBox.Show(teks pesan, kapsion, tombol-tombol, ikon)
e. MessageBox.Show(teks pesan, kapsion, tombol-tombol, ikon,
tombol default)
Pada contoh-contoh terdahulu,
teks pesan merepresentasikan pesan yang ditampilkan pada kotak pesan. Teks ini
dapat berupa teks statis (sebuah nilai string literal) atau disuplai dari
bentuk variabel string. Parameter-parameter lain bersifat opsional:
a. kapsion
merepresentasikan teks statis atau variabel string yang akan dipakai untuk
menampilkan teks pada batang judul dari kotak pesan. Jika parameter ini
diabaikan, maka tidak ada teks yang ditampilkan pada batang judul.
b. tombol-tombol
merepresentasikan sebuah nilai dari enumerasi MessageBoxButtons. Parameter ini dapat dipakai untuk menetapkan
tombol-tombol yang ditampilkan pada kotak pesan. Jika Anda mengabaikan
parameter ini, maka tombol OK akan
menjadi tombol satu-satunya pada kotak.
c. ikon
merepresentasikan sebuah nilai dari enumerasi MessageBoxIcon. Parameter ini dipakai untuk menetapkan ikon-ikon
yang ditampilkan pada kotak pesan. Jika Anda mengabaikan parameter ini, maka
tidak ada ikon yang ditampilkan.
d. tombol default
merepresentasikan sebuah nilai dari enumerasi MessageBoxDefaultButton. Parameter ini dapat dipakai untuk
menetapkan tombol mana yang ditetapkan sebagai tombol default pada kotak pesan.
Jika Anda mengabaikan parameter ini, maka tombol pertama yang ditampilkan
menjadi tombol default.
Semua contoh sintaksis
yang ditunjukkan pada bagian sebelumnya menghasilkan sebuah nilai dari
enumerasi DialogResult, yang
mengindikasikan tombol mana pada kotak pesan yang dipilih. Tabel 6.5
menampilkan nilai-nilai yang tersedia pada enumerasi DialogResult.
TABEL 6.5: Anggota-anggota dari enumerasi DialogResult
Nama Anggota
|
Penjelasan
|
Abort
Cancel
Ignore
No
None
OK
Retry
Yes
|
Nilai balik adalah
Abort dan merupakan hasil dari pengklikan tombol Abort.
Nilai balik adalah
Cancel dan merupakan hasil dari pengklikan tombol Cancel.
Nilai balik adalah
Ignore dan merupakan hasil dari pengklikan tombol Ignore.
Nilai balik adalah No
dan merupakan hasil dari pengklikan tombol No.
Tidak ada nilai balik
yang dihasilkan, yang berarti bahwa kotak dialog tetap ditampilkan sampai
sebuah tombol diklik.
Nilai balik adalah OK
dan merupakan hasil dari pengklikan tombol OK.
Nilai balik adalah
Retry dan merupakan hasil dari pengklikan tombol Retry.
Nilai balik adalah Yes
dan merupakan hasil dari pengklikan tombol Yes.
|
Contoh Kotak Pesan
Karena sejumlah tombol
dapat ditampilkan pada suatu kotak pesan, ada pelbagai cara dalam menampilkan
kotak dialog dan memeriksa hasilnya. Tentu, jika Anda menampilkan hanya satu
tombol menggunakan kotak pesan untuk notifikasi, Anda tidak perlu memeriksa
hasil sama sekali.
LATIHAN
|
Menciptakan Kotak Pesan Dua-Tombol
|
Latihan ini
mendemonstrasikan bagaimana menampilkan dua tombol pada sebuah kotak pesan dan
kemudian memeriksa hasil dari kotak pesan untuk menentukan tombol mana yang diklik.
1. Awali Visual Studio dan pilih File kemudian pilih New Project dari menut. Pada dialog New Project, pilih Windows Forms Application pada panel Template dan masukkan nama projek Tombol MessageBox pada bidang Name. Klik OK untuk menciptakan projek ini.
2. Klik form pada mode Designer dan
kemudian tetapkan properti Text
menjadi Tombol MessageBox.
3. Tambahkan sebuah kontrol Label pada form untuk menampilkan hasil
yang sesuai dengan tombol mana pada kotak pesan yang diklik oleh user. Tetapkan
properti Name menjadi labelHasil dan properti Text menjadi Tidak ada yang diklik.
4. Sekarang tambahkan sebuah kontrol Button dari Toolbox ke dalam form yang akan menampilkan sebuah kotak pesan.
Tetapkan properti Name menjadi tombol2Tombol dan properti Text menjadi 2 Tombol.
5. Klik ganda pada tombol tersebut dan
tambahkan kode yang ditebalkan pada event handler Click berikut:
Private Sub
tombol2Tombol_Click(sender As Object, e As EventArgs) Handles
tombol2Tombol.Click
If MessageBox.Show("Koneksi Internet
Anda akan ditutup.",
"Pemberitahuan Jaringan",
MessageBoxButtons.OKCancel,
MessageBoxIcon.Information,
MessageBoxDefaultButton.Button1) _
= Windows.Forms.DialogResult.OK Then
labelHasil.Text = "OK Diklik"
'Memanggil suatu metode di sini
Else
labelHasil.Text = "Cancel
Diklik"
'Memanggil suatu metode di sini
End If
End Sub
GAMBAR 6.3
6. Simpan projek Anda dengan mengklik
tombol Save All pada toolbar.
7. Jalankan projek dan kemudian klik
tombol 2 Tombol. Anda akan melihat sebuah kotak pesan seperti yang
ditampilkan pada Gambar 6.3.
Penjelasan
Kode menggunakan metode Show dari kelas MessageBox dan menggunakan statemen If.End If untuk menentukan apakah user mengklik tombol OK atau tidak:
If MessageBox.Show("Koneksi Internet Anda akan
ditutup.",
"Pemberitahuan Jaringan",
MessageBoxButtons.OKCancel,
MessageBoxIcon.Information,
MessageBoxDefaultButton.Button1) _
= Windows.Forms.DialogResult.OK Then
Kode ini menetapkan bahwa
tombol OK dan Cancel ditampilkan pada kotak dialog dan bahwa tombol OK akan
menjadi tombol default.
Anda perlu menetapkan
sesuatu untuk parameter ikon, karena ini diperlukan ketika Anda ingin
menetapkan parameter tombol default. Jika Anda tidak ingin menampilkan ikon,
Anda dapat menggunakan katakunci Nothing
untuk parameter itu.
Selain itu perhatikan
bahwa Anda memeriksa hasil dari MessageBox
menggunakan Windows.Forms.DialogResult.OK.
Anda bisa saja memeriksa Windows.Forms.DialogResult.
Cancel dan menuliskan statemen If.End
If untuk itu.
Ini merupakan hal yang
penting diketahui ketika Anda ingin menguji hasil dari salah satu atau dua
tombol, tetapi bagaimana jika Anda ingin menguji hasil dari sebuah kotak pesan
yang memuat tiga tombol? Latihan berikut mendemonstrasikannya.
LATIHAN
|
Menguji Kotak Pesan Tiga-Tombol
|
Latihan ini
mendemonstrasikan bagaimana menampilkan tiga tombol pada sebuah kotak pesan dan
kemudian mencaritahu tombol mana yang diklik.
1.
Hentikan projek jika ia masih
dijalankan dan buka mode Designer untuk Form1.
2. Tambahkan kontrol Button lain dan tetapkan properti Name menjadi tombol3Tombol dan properti Text
menjadi 3 Tombol. Klik ganda pada
tombol tersebut dan tambahkan kode yang ditebalkan pada event handler Click:
Private Sub
tombol3Tombol_Click(sender As Object, e As EventArgs) Handles
tombol3Tombol.Click
'Mendeklarasikan variabel lokal
Dim
intHasil As DialogResult
'Mendapatkan hasil dari tombol yang diklik
intHasil = _
MessageBox.Show("Apakah Anda ingin menyimpan ke dokumen baru?",
_
"Pengolah
Kata", MessageBoxButtons.YesNoCancel, _
MessageBoxIcon.Warning,
MessageBoxDefaultButton.Button3)
'Memproses hasil dari tombol yang diklik
Select Case intHasil
Case Windows.Forms.DialogResult.Yes
labelHasil.Text = "Yes Diklik"
'Lakukan pemrosesan yes di sini
Case Windows.Forms.DialogResult.No
labelHasil.Text = "No Diklik"
'Lakukan pemrosesan no di sini
Case Windows.Forms.DialogResult.Cancel
labelHasil.Text = "Cancel Diklik"
'Lakukan pemrosesan cancel di sini
End Select
End Sub
3. Jalankan projek dan klik tombol 3 Tombol. Kotak dialog pesan akan
ditampilkan pada Gambar 6.4, menunjukkan sebuah ikon dan tiga tombol.
Perhatikan bahwa tombol ketiga tombol default.
GAMBAR 6.4
Penjelasan
Pada kode berikut, hal
pertama yang Anda lakukan adalah mendeklarasikan sebuah variabel sebagai sebuah
DialogResult untuk menangkap DialogResult yang dihasilkan dari kotak
pesan. Ingat bahwa nilai yang dihasilkan dari kotak pesan adalah salah satu
nilai Integer dari enumerasi. Selanjutnya, Anda menetapkan DialogResult dalam variabel:
'Mendeklarasikan variabel
lokal
Dim intHasil As
DialogResult
'Mendapatkan hasil dari
tombol yang diklik
intHasil = _
MessageBox.Show("Apakah Anda ingin menyimpan ke dokumen baru?",
_
"Pengolah
Kata", MessageBoxButtons.YesNoCancel, _
MessageBoxIcon.Warning, MessageBoxDefaultButton.Button3)
Terakhir, Anda menguji
nilai dari intHasil pada sebuah
statemen Select Case dan bertindak sesuai dengan hasil tersebut.
'Memproses hasil dari tombol yang diklik
Select Case intHasil
Case Windows.Forms.DialogResult.Yes
labelHasil.Text = "Yes Diklik"
'Lakukan pemrosesan yes di sini
Case Windows.Forms.DialogResult.No
labelHasil.Text = "No Diklik"
'Lakukan pemrosesan no di sini
Case
Windows.Forms.DialogResult.Cancel
labelHasil.Text = "Cancel Diklik"
'Lakukan pemrosesan cancel di sini
End Select
Pada tiap statemen Case, Anda menuliskan nama tombol yang
diseleksi pada label untuk mengindikasikan tombol mana yang diklik.
Sekarang Anda telah
memiliki pemahaman yang lebih baik tentang bagaimana kotak dialog MessageBox diterapkan dan bagaimana
sintaksis dalam menggunakannya. Untuk lebih memfamiliarkan MessageBox, coba mengubah nilai dari parameter teks pesan, kapsion, tombol, ikon, dan tombol default.
KONTROL OPENFILEDIALOG
Banyak aplikasi Windows
memproses data dari file, jadi Anda memerlukan suatu antarmuka untuk memilih
file untuk dibuka dan disimpan. Pustaka .NET menyediakan kelas OpenFileDialog dan SaveFileDialog untuk melakukannya. Pada bagian ini, Anda akan
mempelajari kontrol OpenFileDialog,
dan pada bagian selanjutnya Anda akan mempelajari kontrol SaveFileDialog.
Ketika Anda menggunakan
aplikasi Windows, seperti Microsoft Word atau Paint, Anda akan melihat kotak
dialog Open dasar yang sama. Ini
tidak terjadi secara kebetulan. Tersedia bagi semua pengembang adalah sejumlah
antarmuka pemrograman standar (API, application
programming interfaces) yang dapat dipakai untuk menyediakan antarmuka
standar ini. Namun, penggunaan API merupakan pekerjaan rumit dan sulit bagi
pemula. Untungnya, semua fungsionalitas ini telah tersedia pada .NET Framework,
jadi Anda dapat menggunakannya ketika Anda mengembangkan piranti lunak
menggunakan Visual Basic.
Kontrol OpenFileDialog
Anda dapat menggunakan OpenFileDialog sebagai sebuah kelas
.NET dengan mendeklarasikan suatu variabel dengan tipe data itu di dalam kode
Anda dan memodifikasi properti-propertinya di dalam kode, atau sebagai sebuah
kontrol dengan menggeretnya dari jendela Toolbox
ke dalam form saat perancangan. Pada kedua kasus tersebut, objek yang dihasilkan
akan memiliki metode-metode, properti-properti, dan event-event yang sama.
Anda bisa menemukan
kontrol OpenFileDialog pada jendela Toolbox di bawah tab Dialogs, dimana Anda dapat menggeret
dan menjatuhkannya pada form Anda. Kemudian, apa yang perlu Anda lakukan adalah
menetapkan properti-propertinya dan mengeksekusi metode yang dibutuhkan. Untuk
menggunakan OpenFileDialog sebagai
sebuah kelas, Anda mendeklarasikan objek sendiri dengan tipe data ini untuk
menggunakan kotak dialog. Kemudian Anda akan memiliki kendali atas skop dari
kotak dialog dan dapat mendeklarasikan sebuah objek untuknya bila diperlukan,
dan kemudian menghancurkan atau menghapusnya.
Bagian ini akan fokus
pada OpenFileDialog sebagai sebuah
kontrol. Begitu Anda memiliki pemahaman yang lebih baik atas kotak dialog ini
dan merasa nyaman dalam menggunakannya, Anda kemudian dapat mengekspansi
keterampilan Anda ini dan menggunakan OpenFileDialog
sebagai sebuah kelas dengan mendeklarasikan objek sendiri dengan tipe data OpenFileDialog.
Anda dapat menggunakan OpenFileDialog dengan memanggil metode ShowDialog, yang menghasilkan dialog
seperti ditunjukkan pada Gambar 6.5.
GAMBAR 6.5
Properti-Properti dari OpenFileDialog
Meskipun kotak dialog
yang ditampilkan pada Gambar 6.5 merupakan kotak dialog Open standar yang ditampilkan pada Windows 7, ia tidak memiliki
penapisan. Semua jenis file dicantumkan pada jendela dan Anda tidak bisa
menetapkan jenis file untuk penapisan karena tidak ada penapisan. Inilah dimana
properti-properti dari OpenFileDialog
dapat dipakai. Anda dapat menetapkan sejumlah properti sebelum kotak dialog Open ditayangkan, jadi Anda dapat
memodifikasi kotak dialog sesuai dengan kebutuhan Anda.
Tabel 6.6 mencantumkan
sejumlah properti yang tersedia untuk kontrol OpenFileDialog.
TABEL 6.6: Sejumlah properti dari kontrol OpenFileDialog
Properti
|
Penjelasan
|
AddExtension
AutoUpgradeEnabled
CheckFileExists
CheckPathExists
DefaultExt
DereferenceLinks
FileName
FileNames
Filter
FilterIndex
InitialDirectory
Multiselect
ReadOnlyChecked
SafeFileName
SafeFileNames
ShowHelp
ShowReadOnly
SupportMultiDotted
Extensions
Title
ValidateNames
|
Mengindikasikan apakah
sebuah ekstensi secara otomatis ditambahkan pada sebuah nama file jika user
mengabaikan ekstensi. Ini umumnya digunakan pada SaveFileDialog, yang akan dijelaskan pada bagian selanjutnya.
Mengindikasikan apakah
dialog ini secara otomatis memperbarui tampilan dan wataknya ketika
dijalankan pada versi Windows yang berbeda.
Mengindikasikan apakah
kotak dialog menampilkan peringatan jika user menetapkan nama file yang tidak
ada.
Mengindikasikan apakah
kotak dialog menampilkan peringatan jika user menetapkan path yang tidak ada.
Mengindikasikan
ekstensi nama file default.
Digunakan untuk jalan
pintas. Mengindikasikan apakah dialog menghasilkan lokasi file yang direferensi
oleh jalan pintas (True) atau
apakah ia hanya menghasilkan jalan pintas itu sendiri (False).
Mengindikasikan path
dan nama file dari file terseleksi pada kotak dialog.
Mengindikasikan path
dan nama file dari semua file terseleksi pada kotak dialog. Ini merupakan
sebuah properti read-only.
Mengindikasikan string
filter nama file, yang menentukan opsi-opsi yang ditampilkan pada kotak
combol Files of Type pada kotak
dialog.
Mengindikasikan indeks
file yang terseleksi pada kotak dialog.
Mengindikasikan
direktori awal yang ditampilkan pada kotak dialog.
Mengindikasikan apakah
kotak dialog membolehkan seleksi terhadap multi file.
Mengindikasikan apakah
kotak periksa read-only diseleksi.
Mengindikasikan nama
file dari file terseleksi pada kotak dialog.
Mengindikasikan nama
file dari semua file terseleksi pada kotak dialog. Ini merupakan properti
read-only.
Mengindikasikan apakah
tombol Help ditampilkan pada kotak dialog.
Mengindikasikan apakah
kotak dialog memuat sebuah kotak periksa read-only.
Mengindikasikan apakah
kotak dialog mendukung penampilan dan penyimpanan file yang memiliki beberapa
ekstensi nama file.
Mengindikasikan judul
yang ditampilkan pada batang judul dari kotak dialog.
Mengindikasikan apakah
kotak dialog hanya bisa menerima namafile WIN32 yang valid.
|
Metode-Metode OpenFileDialog
Meskipun banyak metode
yang disediakan di dalam kelas OpenFileDialog,
Anda hanya akan berkonsentrasi pada metode ShowDialog
pada contoh-contoh ini. Berikut merupakan beberapa metode yang tersedia di
dalam kelas OpenFileDialog:
a. Dispose
membebaskan memori yang digunakan oleh kotak dialog Open.
b. OpenFile
membuka file yang diseleksi oleh user dengan ijin operasi pembacaan. File ini ditetapkan oleh properti FileName.
c. Reset mengatur
ulang ke pengaturan default semua properti dari kotak dialog Open.
d. ShowDialog
menampilkan kotak dialog.
Metode ShowDialog cukup sederhana, karena ia
bisa saja tidak memiliki parameter atau atau bisa saja menggunakan katakunci Me. Oleh karena itu, sebelum
pemanggilan metode ShowDialog
dilakukan, Anda perlu menetapkan semua properti yang ingin Anda atur. Setelah
kotak dialog memberikan hasil (nilai balik), Anda dapat memeriksa
properti-properti untuk menentukan file mana yang diseleksi, direktori dan tipe
file apa yang diseleksi. Salah satu contoh metode ShowDialog ditampilkan pada fragmen kode berikut:
OpenFileDialog1.ShowDialog()
Kontrol OpenFileDialog menghasilkan sebuah
nilai OK atau Cancel yang bertipe DialogResult,
dengan OK berkaitan dengan tombol Open pada kotak dialog. Kontrol ini
tidak membukakan dan membaca file untuk Anda; ia hanyalah sebuah antarmuka yang
memampukan user untuk mencari dan menetapkan file atau file-file yang akan
dibuka oleh aplikasi. Anda perlu memeriksa properti-properti dari OpenFileDialog yang telah ditetapkan
oleh kontrol setelah user mengklik tombol Open
untuk menentukan file mana yang akan dibuka.
Menggunakan Kontrol OpenFileDialog
Setelah Anda mempelajari
kontrol OpenFileDialog, Anda dapat
menggunakan pengetahuan ini untuk digunakan menuliskan sebuah program yang
memakai kontrol ini.
LATIHAN
|
Menggunakan OpenFileDialog
|
Program pada latihan ini
menggunakan kontrol OpenFileDialog
untuk menampilkan kotak dialog Open File. Anda menggunakan kotak dialog ini
untuk mencari dan memilih sebuah file teks, dan kemudian Anda akan membaca isi
dari file tersebut ke dalam sebuah kotak teks pada form Anda menggunakan
namespace My.Computer.FileSystem.
1. Ciptakanlah
sebuah projek Windows Forms Application
dengan nama Dialog Windows Forms.
2. Untuk
memberikan nama baru, pada jendela Solution
Explorer, klik kanan pada Form1.vb dan pilih Rename dari menu konteks. Kemudian masukkan nama baru Dialog.vb. Tetapkan properti-properi
dari form sebagai berikut:
Tetapkan Size menjadi 460, 300.
Tetapkan StartPosition menjadi CenterScreen.
Tetapkan Text menjadi Dialog.
Tetapkan Size menjadi 460, 300.
Tetapkan StartPosition menjadi CenterScreen.
Tetapkan Text menjadi Dialog.
3. Karena
Anda akan membaca isi dari sebuah file ke dalam kotak teks, Anda perlu
menambahkan sebuah kotak teks pada form. Anda juga akan menambahkan sebuah
tombol pada form sehingga Anda dapat memanggil kotak dialog Open File. Tambahkan kedua kontrol ini pada form dan tetapkan
properti-propertinya berikut:
Namai kotak teks dengan teksFile dan tetapkan properti-properti berikut:
Anchor = Top, Bottom, Left, Right; Location = 13, 13;
MultiLine = True; ScrollBars = Vertical; Size = 330,332.
Namai kontrol Button dengan tombolBuka dan tetapkan properti-properti berikut: Anchor = Top, Right; Location = 349, 13; Text = Buka.
Namai kotak teks dengan teksFile dan tetapkan properti-properti berikut:
Anchor = Top, Bottom, Left, Right; Location = 13, 13;
MultiLine = True; ScrollBars = Vertical; Size = 330,332.
Namai kontrol Button dengan tombolBuka dan tetapkan properti-properti berikut: Anchor = Top, Right; Location = 349, 13; Text = Buka.
4. Ketika
selesai menempatkan kontrol-kontrol pada form dan menetapkan
properti-propertinya, form akan tampak seperti pada Gambar 6.6.
5. Pada
Toolbox, gulung ke bawah sampai Anda
melihat kontrol OpenFileDialog pada
tab Dialogs dan kemudian geret
kontrol itu ke form Anda dan jatuhkan. Kontrol akan ditempatkan di bawah dari
form.
Pada titik ini, Anda dapat mengklik
kontrol tersebut dan menetapkan sejumlah properti untuk kontrol ini pada
jendela Properties. Namun, untuk
sekarang Anda bisa menerima nama default dan properti-propertinya. Anda akan
menetapkan properti-properti dari kontrol ini nanti dari kode.
6. Tukar
ke editor kode untuk form. Deklarasikan sebuah variabel string yang akan memuat
nama file. Anda menetapkan variabel ini nanti pada kode Anda untuk memuat path
dan nama file dari kotak dialog Open
File:
Public
Class Dialog
'Mendeklarasikan variabel
Private strNamaFile As String
7. Sekarang Anda perlu
menuliskan kode pada event Click
untuk tombolBuka. Pada kotak combo Class Name di atas dari editor kode, pilih tombolBuka, dan pada kotak combo Method Name pilih event Click. Tambahkan kode yang ditebalkan
berikut pada event handler Click:
Private Sub
tombolBuka_Click(sender As Object, e As EventArgs) Handles tombolBuka.Click
'Membuka
properti-properti dialog Open
With
OpenFileDialog1
.Filter
= "Dokumen Teks (*.txt)|*.txt|Semua File (*.*)|*.*"
.FilterIndex = 1
.Title =
"Demo Dialog Open File"
End With
'Menampilkan
dialog Open dan jika user mengklik tombol Open,
'muat file
If
OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
Try
'Simpan path dan nama file
strNamaFile = OpenFileDialog1.FileName
Catch ex
As Exception
MessageBox.Show(ex.Message, My.Application.Info.Title, _
MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End If
End Sub
8. Sekarang
saatnya untuk menggunakan kode snippet yang ada di dalam Visual Studio. Klik
kanan pada ruang kosong di dalam statemen blok Try tepat sebelum statemen blok Catch dan pilih Insert Snippet dari menu konteks. Pada menu
yang ditampilkan, klik ganda pada Fundamentals-Collections,
Data Types, File System, Math dan kemudian pada list baru klik ganda File System-Processing Drives, Folders, and
Files. Terakhir, gulung ke bawah list dan klik ganda pada Read Text from a File. Kode akan akan
tampak seperti ini, dan Anda akan memerhatikan bahwa nama file C:\Test.txt disorot, yang
mengindikasikan bahwa kode ini perlu diganti:
Try
'Simpan path dan nama file
strNamaFile = OpenFileDialog1.FileName
Dim
fileContents As String
fileContents =
My.Computer.FileSystem.ReadAllText("C:\Test.txt")
Catch ex As Exception
9. Modifikasi
kode di dalam blok Try seperti
ditunjukkan di sini. Ganti “C:\Test.txt”
dengan strNamaFile dan tambahkan
kode berikut untuk menampilkan isi dari file teks:
Try
'Simpan path dan nama file
strNamaFile = OpenFileDialog1.FileName
Dim fileContents As String
fileContents =
My.Computer.FileSystem.ReadAllText("C:\Test.txt")
'Menampilkan
isi file pada kotak teks
teksFile.Text = fileContents
Catch ex As Exception
10. Simpan
projek Anda dengan mengklik tombol Save
All pada toolbar.
11. Jalankan
projek Anda. Ketika form ditampilkan, klik tombol Open untuk menampilkan dialog Open
File. Perhatikan kapsion pada batang
judul dari kotak dialog; Anda telah menetapkan ini pada kode Anda. Jika Anda
mengklik kotak combol filter File, Anda akan melihat dua filter. Klik pada
filter kedua untuk melihat semua file pada direktori tersebut.
12. Sekarang cari sebuah file
teks pada komputer Anda dan pilih file itu. Kemudian klik tombol Open untuk
membukanya dan isi file akan ditempatkan pada kotak teks, seperti ditunjukkan
pada Gambar 6.7.
13. Sebagai uji terakhir
tutup aplikasi Anda dan kemudian ulangi lagi. Klik tombol Open pada form dan perhatikan bahwa kotak dialog Open File telah membuka direktori yang sama dari mana Anda membuka
terakhir kali. Anda tidak perlu menuliskan kode apapun untuk melakukannya.
Penjelasan
Sebelum menampilkan kotak
dialog Open File, Anda perlu menetapkan beberapa properti dari OpenFileDialog1 sehingga kotak dialog
disesuaikan untuk aplikasi Anda. Anda dapat melakukannya menggunakan statemen With…End. Statemen ini dapat dipakai
untuk melakukan referensi berulang ke sebuah objek tanpa perlu secara berulang
menetapkan nama objek. Anda menetapkan nama objek sekali saja pada baris dengan
statemen With dan kemudian
menambahkan semua referensi ke properti objek sebelum statemen End With.
With OpenFileDialog1
Properti pertama yang
Anda tetapkan adalah properti Filter. Properti ini memampukan Anda untuk
mendefinisikan filter-filter yang akan ditampilkan pada kotak combol filter
File di pojok kanan bawah dari dialog. Ketika Anda mendefinisikan sebuah filter
ekstensi file, Anda menetapkan deskripsi filter yang diikuti oleh sebuah batang
vertikal (|) yang diikuti oleh ekstensi file. Ketika Anda ingin properti Filter
untuk memuat beberapa ekstensi file, seperti ditunjukkan berikut, Anda
memisahkan setiap filter file dengan sebuah batang vertikal sebagai berikut:
.Filter = "Dokumen Teks (*.txt)|*.txt|Semua File
(*.*)|*.*"
Properti berikutnya yang
Anda tetapkan adalah FilterIndex.
Properti ini menentukan filter mana yang ditampilkan pada kotak combol filter
File. Nilai defaultnya untuk properti ini adalah 1, yang merupakan filter
pertama:
.FilterIndex = 1
Terakhir, Anda menetapkan
properti Title. Ini merupakan
kapsion yang ditampilkan pada batang judul dari kotak dialog:
.Title = "Demo Dialog Open File"
Untuk membuka kotak
dialog Open File, Anda menggunakan metode ShowDialog.
Ingat bahwa metode ini menghasilkan sebuah DialogResult,
dimana hanya terdapat dua nilai yang mungkin, dan Anda dapat membandingkan
hasil dari metode ShowDialog dengan Windows.Forms.DialogResult.OK dan Windows.Forms.DialogResult.Cancel. Jika
user mengklik tombol Open pada kotak
dialog, maka ShowDialog akan
menghasilkan nilai OK; jika user
mengklik tombol Cancel pada kotak
dialog, maka ShowDialog akan
menghasilkan nilai Cancel:
If OpenFileDialog1.ShowDialog =
Windows.Forms.DialogResult.OK Then
Selanjutnya, Anda
menambahkan sebuah blok Try.Catch
untuk menangani setiap error yang berpotensi terjadi. Di dalam blok Try, Anda membaca path dan nama file
yang dipilih oleh user pada kotak dialog Open
File dan menetapkannya pada variabel
strNamaFile. Path dan nama file
dimuat di dalam properti FileName
dari kontrol OpenFileDialog:
strNamaFile = OpenFileDialog1.FileName
Selanjutnya, Anda
menggunakan snippet yang disediakan oleh Visual Studio untuk menyederhanakan
pekerjaan pemrograman menggunakan snippet kode Read Text from a file. Snippet kode ini memuat kode yang diperlukan
untuk membaca isi dari sebuah file teks dan menempatkan isinya ke dalam sebuah
variabel string.
Kemudian, Anda
memodifikasi kode dari snippet, yang menyediakan variabel strNamaFile. Kode ini akan membaca keseluruhan isi file ke dalam
variabel fileContents:
Dim fileContents As String
fileContents =
My.Computer.FileSystem.ReadAllText(strNamaFile)
Baris kode terakhir yang
Anda tuliskan mengambil isi dari variabel fileContents
dan menugaskannya kepada properti Text
dari kontrol TextBox:
'Menampilkan isi file pada kotak teks
teksFile.Text = fileContents
Kode di dalam blok Catch menggunakan kelas MessageBox untuk menampilkan isi dari
properti Message dari eksepsi yang dilemparkan bila error terjadi. Parameter
caption
Catch ex As
Exception
MessageBox.Show(ex.Message,
My.Application.Info.Title, _
MessageBoxButtons.OK,
MessageBoxIcon.Error)
End Try
KONTROL SAVEFILEDIALOG
Sekarang setelah Anda
dapat membuka file dengan kontrol OpenFileDialog,
saatnya bagi Anda mengenal kontrol SaveFileDialog
agar Anda bisa menyimpan file. Seperti OpenFileDialog,
SaveFileDialog dapat dipakai sebagai
kontrol maupun kelas. Setelah Anda memahami SaveFileDialog sebagai kontrol, Anda tidak akan memiliki masalah
dalam menggunakan SaveFileDialog
sebagai kelas.
Setelah Anda membuka
file, Anda bisa jadi memerlukan modifikasi pada file itu dan kemudian
menyimpannya. Kontrol SaveFileDialog
menawarkan fungsionalitas yang sama dengan kontrol OpenFileDialog. Kontrol ini memampukan Anda untuk memilih lokasi
dan nama file ketika Anda menyimpan file. Penting diketahui bahwa kontrol SaveFileDialog sebenarnya tidak
menyimpan file Anda; ia hanya menyediakan sebuah kotak dialog yang memampukan
user mencari lokasi file yang akan disimpan.
Properti-Properti dari SaveFileDialog
Tabel 6.7 mencantumkan
sejumlah properti yang tersedia pada kontrol SaveFileDialog. Seperti yang dapat Anda lihat, kontrol ini, atau
kelas ini, memuat banyak properti yang dapat dipakai untuk memodifikasi
bagaimana kotak dialog berperilaku.
TABEL 6.7: Sejumlah properti dari kontrol SaveFileDialog
Properti
|
Penjelasan
|
AddExtension
AutoUpgradeEnabled
CheckFileExists
CheckPathExists
CreatePrompt
DefaultExt
DereferenceLinks
FileName
FileNames
Filter
FilterIndex
InitialDirectory
OverwritePrompt
ShowHelp
ShowReadOnly
SupportMultiDotted
Extensions
Title
ValidateNames
|
Mengindikasikan apakah
sebuah ekstensi secara otomatis ditambahkan pada sebuah nama file jika user
mengabaikan ekstensi.
Mengindikasikan apakah
dialog ini secara otomatis memperbarui tampilan dan wataknya ketika
dijalankan pada versi Windows yang berbeda.
Mengindikasikan apakah
kotak dialog menampilkan peringatan jika user menetapkan nama file yang tidak
ada.
Mengindikasikan apakah
kotak dialog menampilkan peringatan jika user menetapkan path yang tidak ada.
Mengindikasikan apakah
kotak dialog akan meminta ijin dari user dalam menciptakan sebuah file jika
user menetapkan sebuah file yang tidak ada.
Mengindikasikan
ekstensi nama file default.
Digunakan untuk jalan
pintas. Mengindikasikan apakah dialog menghasilkan lokasi file yang
direferensi oleh jalan pintas (True)
atau apakah ia hanya menghasilkan jalan pintas itu sendiri (False).
Mengindikasikan path
dan nama file dari file terseleksi pada kotak dialog.
Mengindikasikan path
dan nama file dari semua file terseleksi pada kotak dialog. Ini merupakan
sebuah properti read-only.
Mengindikasikan string
filter nama file, yang menentukan opsi-opsi yang ditampilkan pada kotak
combol Files of Type pada kotak
dialog.
Mengindikasikan indeks
file yang terseleksi pada kotak dialog.
Mengindikasikan
direktori awal yang ditampilkan pada kotak dialog.
Mengindikasikan apakah
kotak dialog menampilkan peringatan bila user menetapkan nama file yang telah
ada.
Mengindikasikan apakah
tombol Help ditampilkan pada kotak dialog.
Mengindikasikan apakah
kotak dialog memuat sebuah kotak periksa read-only.
Mengindikasikan apakah
kotak dialog mendukung penampilan dan penyimpanan file yang memiliki beberapa
ekstensi nama file.
Mengindikasikan judul
yang ditampilkan pada batang judul dari kotak dialog.
Mengindikasikan apakah
kotak dialog hanya bisa menerima namafile WIN32 yang valid.
|
Metode-Metode SaveFileDialog
Kontrol SaveFileDialog memiliki metode-metode
yang sama seperti OpenFileDialog.
Jika Anda ingin membacanya kembali, silahkan ke bagian “Metode-Metode
OpenFileDialog”. Semua contoh di sini akan menggunakan metode ShowDialog untuk menampilkan dialog Save File.
Menggunakan Kontrol SaveFileDialog
Pada latihan ini, Anda
akan menyimpan isi dari kotak teks ke dalam sebuah file. Anda menggunakan
kontrol SaveFileDialog untuk
menampilkan sebuah kotak dialog Save File yang dapat Anda pakai untuk
menetapkan lokasi dan nama file. Kemudian Anda menuliskan isi dari kotak teks
pada form Anda ke dalam file, dengan menggunakan kembali snippet yang telah
disediakan oleh Visual Studio.
LATIHAN
|
Menggunakan SaveFileDialog
|
Untuk melihat bagaimana
mencantumkan kontrol SaveFileDialog
pada projek Anda, Anda memulainya dengan projek Dialog Windows Forms dari latihan sebelumnya sebagai titik awal.
1. Kembali
ke mode Designer pada projek Dialog
Windows Forms.
2. Geret
kontrol Button lain dari Toolbox dan jatuhkan di bawah tombol Buka dan tetapkan properti-propertinya
sebagai berikut:
Tetapkan Name menjadi tombolSimpan.
Tetapkan Anchor menjadi Top, Right.
Tetapkan Location menjadi 349, 43.
Tetapkan Text menjadi Simpan.
Tetapkan Name menjadi tombolSimpan.
Tetapkan Anchor menjadi Top, Right.
Tetapkan Location menjadi 349, 43.
Tetapkan Text menjadi Simpan.
3. Pada
Toolbox, gulung ke bawah sampai Anda melihat kontrol SaveFileDialog dan kemudian geret kontrol itu dan jatuhkan pada
form Anda. Kontrol tersebut akan ditambahkan di bawah form.
4. Klik
ganda pada tombol Simpan untuk
menciptakan event handler Click dan
tambahkan kode yang ditebalkan berikut:
Private Sub
tombolSimpan_Click(sender As Object, e As EventArgs) Handles tombolSimpan.Click
'Menetapkan
properti-properti dialog Save
With
SaveFileDialog1
.DefaultExt = "txt"
.FileName = strNamaFile
.Filter
= "Dokumen Teks (*.txt)|*.txt|Semua File (*.*)|*.*"
.FilterIndex = 1
.OverwritePrompt = True
.Title =
"Demo Dialog Save File"
End With
'Menampilkan
dialog Save dan jika user mengklik tombol Save,
'hal itu
akan menyimpan file
If
SaveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
Try
'Menyimpan path dan nama file
strNamaFile = SaveFileDialog1.FileName
Catch ex
As Exception
MessageBox.Show(ex.Message, My.Application.Info.Title, _
MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End If
End Sub
5. Sekarang
saatnya untuk menggunakan kode snippet yang ada di dalam Visual Studio. Klik
kanan pada ruang kosong di dalam statemen blok Try tepat sebelum statemen blok Catch dan pilih Insert Snippet dari menu konteks. Pada menu
yang ditampilkan, klik ganda pada Fundamentals-Collections,
Data Types, File System, Math dan kemudian pada list baru klik ganda File System-Processing Drives, Folders, and
Files. Terakhir, gulung ke bawah list dan klik ganda pada Write Text to a File. Kode akan akan
tampak seperti ini, dan Anda akan memerhatikan bahwa nama file C:\Test.txt disorot, yang
mengindikasikan bahwa kode ini perlu diganti:
'Menampilkan dialog Save
dan jika user mengklik tombol Save,
'hal itu akan menyimpan
file
If
SaveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
Try
'Menyimpan path dan nama file
strNamaFile = SaveFileDialog1.FileName
My.Computer.FileSystem.WriteAllText("C:\Test.txt",
"Text", True)
Catch ex As Exception
MessageBox.Show(ex.Message,
My.Application.Info.Title, _
MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End If
6. Modifikasi
kode di dalam blok Try seperti
ditunjukkan di sini. Ganti “C:\Test.txt”
dengan strNamaFile dan tambahkan
kode berikut untuk menampilkan isi dari file teks:
'hal itu akan menyimpan
file
If SaveFileDialog1.ShowDialog
= Windows.Forms.DialogResult.OK Then
Try
'Menyimpan path dan nama file
strNamaFile = SaveFileDialog1.FileName
My.Computer.FileSystem.WriteAllText(strNamaFile, teksFile.Text, False)
Catch ex As Exception
MessageBox.Show(ex.Message,
My.Application.Info.Title, _
MessageBoxButtons.OK,
MessageBoxIcon.Error)
End Try
End If
7. Pada
titik ini, Anda siap untuk menguji kode ini, jadi jalankan projek Anda. Awali
dengan pengujian sederhana. Ketikkan teks tertentu ke dalam kotak teks pada
form dan kemudian klik tombol Simpan.
Kotak dialog Save akan ditampilkan.
Perhatikan bahwa kotak combo File name telah memiliki path dan nama file
di dalamnya. Ini merupakan path yang telah ditetapkan pada variabel strNamaFile ketika Anda
mendeklarasikannya pada latihan sebelumnya.
8. Masukkan
nama file baru tetapi jangan berikan ekstensi pada file itu. Kemudian klik
tombol Save dan file akan disimpan. Untuk memverifikasinya, klik tombol Buka pada form untuk memanggil kotak
dialog Open File; Anda akan melihat file baru Anda itu.
9. Untuk
menguji properti OverwritePrompt
dari kontrol SaveFileDialog,
masukkan teks tertentu ke dalam kotak teks pada form dan kemudian klik tombol Simpan. Pada kotak dialog Save File, pilih sebuah nama file yang telah ada dan kemudian klik
tombol Save. Anda akan diminta untuk
mengkonfirmasi penggantian file yang telah ada tersebut seperti ditunjukkan
pada Gambar 6.8. Jika Anda memilih Yes,
kotak dialog ini akan menghasilkan nilai DialogResult.OK,
dan kode di dalam statemen If.End If
akan dieksekusi. Jika Anda memilih No,
Anda akan dibawa kembali ke kotak dialog Save
File sehingga Anda bisa menentukan
nama file lain.
Penjelasan
Sebelum menampilkan kotak
dialog Save File, Anda perlu menetapkan beberapa properti untuk memodifikasi
dialog pada aplikasi Anda. Properti pertama yang Anda tetapkan adalah properti DefaultExt. Properti ini secara
otomatis menetapkan ekstensi file jika user belum menetapkannya. Sebagai
contoh, jika Anda menetapkan sebuah nama file dengan nama fileBaru tanpa ekstensi, maka kotak dialog secara otomatis akan
menambahkan ekstensi .txt pada file
tersebut, sehingga Anda akan memiliki sebuah nama file dengan nama fileBaru.txt.
.DefaultExt = "txt"
Properti FileName ditetapkan menjadi path dan
nama file yang dihasilkan dari dialog Open
File. Ini memampukan Anda untuk
membuka file, mengeditnya, dan kemudian menampilkan nama file yangsama ketika
Anda menampilkan kotak dialog Save File.
.FileName = strNamaFile
Dua properti selanjutnya
sama dengan kontrol OpenFileDialog.
Keduanya menetapkan filter ekstensi file yang akan ditampilkan pada kotak
combol Save as Type: dan menetapkan
filter awal:
.Filter =
"Dokumen Teks (*.txt)|*.txt|Semua File (*.*)|*.*"
.FilterIndex = 1
Properti OverwritePrompt menerima sebuah nilai Boolean: True atau False. Ketika
ditetapkan True, properti ini
menampilkan sebuah kotak dialog MessageBox
bila Anda memilih nama file yang telah ada. Jika Anda pilih Yes, kotak dialog Save File akan
menghasilkan DialogResult.OK; jika
Anda pilih No, Anda akan dibawa kembali ke kotak dialog Save File untuk memilih
nama file lain. Ketika properti OverwritePrompt
ditetapkan False, kotak dialog Save File tidak akan mengingatkan Anda bahwa Anda akan mengganti file
yang telah ada, dan koda Anda akan melakukannya tanpa ijin dari user.
.OverwritePrompt = True
Properti Title menetapkan kapsion di batang
judul dari kotak dialog Save File:
.Title = "Demo Dialog Save File"
Setelah Anda menetapkan
sejumlah properti, Anda ingin menampilkan kotak dialog itu. Metode ShowDialog dari kontrol SaveFileDialog juga menghasilkan nilai
balik bertipe data DialogResult,
jadi Anda dapat menggunakan kontrol SaveFileDialog
di dalam sebuah statemen If.End If
untuk menguji nilai balik.
Jika use mengklik tombol Save pada kotak dialog Save File, maka kotak dialog itu akan menghasilkan nilai OK yang bertipe data DialogResult. Jika user mengklik tombol
Cancel pada kotak dialog, maka ia
akan menghasilkan nilai Cancel yang
bertipe data DialogResult. Kode
berikut menguji Windows.Forms.DialogResult.OK:
If SaveFileDialog1.ShowDialog =
Windows.Forms.DialogResult.OK Then
Hal pertama yang Anda
lakukan di sini adalah menyimpan path dan nama file yang dipilih oleh user pada
variabel strNamaFile. Ini dilakukan ketika user telah memilih nama file baru
pada kotak dialog:
Try
'Menyimpan path dan nama file
strNamaFile = SaveFileDialog1.FileName
Kemudian Anda
memodifikasi snipper yang dihasilkan oleh Visual Studio dengan mengganti kode
dengan variabel-variabel Anda. Pertama, Anda mengganti teks “C:\Test.txt” dengan variabel Anda, strNamaFile. Bagian ini membuka file
untuk keluaran. Kemudian Anda mengganti teks “Text” dengan properti Text
dari kotak teks pada form Anda. Bagian kode ini membaca isi dari kotak teks
Anda dan menuliskannya ke dalam file. Parameter False di akhir kode ini mengindikasikan apakah teks akan
ditempatkan ke belakang file. Sebuah nilai False
mengindikasikan bahwa isi file akan ditulis menggantikan keseluruhan isi file
sebelumnya.
My.Computer.FileSystem.WriteAllText(strNamaFile,
teksFile.Text, False)
Kode terakhir pada blok If.End If ini hanyalah merupakan bagian
akhir dari blok Try.Catch:
Catch ex As
Exception
MessageBox.Show(ex.Message,
My.Application.Info.Title, _
MessageBoxButtons.OK,
MessageBoxIcon.Error)
End Try
End If
KONTROL FONTDIALOG
Kadangkala Anda bisa saja
perlu menuliskan sebuah aplikasi yang membolehkan user untuk memilih font yang
diinginkannya. Atau bisa jadi Anda ingin melihat semua font yang tersedia pada
sistem tertentu. Di sinilah kontrol FontDialog
dapat digunakan; ia menampilkan semua font yang terpasang pada komputer Anda
pada sebuah dialog standar yang sering dilihat oleh user.
Seperti kontrol OpenFileDialog dan SaveFileDialog, kelas FontDialog
dapat dipakai sebagai sebuah kontrol dengan menggeretnya ke dalam form, atau sebagai
sebuah kelas dengan mendeklarasikannya di dalam kode.
Kontrol FontDialog mudah untuk digunakan; Anda
hanya perlu menetapkan sejumlah properti, menampilkan kotak dialog, dan
kemudian memeriksa properti-properti yang Anda perlukan.
Properti-Properti dari FontDialog
Tabel 6.8 mencantumkan
sejumlah properti yang tersedia pada FontDialog.
Tabel 6.8: Sejumlah properti dari kontrol FontDialog
Properti
|
Penjelasan
|
AllowScriptChange
Color
Font
FontMustExist
MaxSize
MinSize
ShowApply
ShowColor
ShowEffects
ShowHelp
|
Mengindikasikan apakah
user dapat mengubah himpunan karakter yang disediakan di dalam kotak
drop-down untuk menampilkan himpunan karakter selain yang sedang ditampilkan.
Mengindikasikan warna
font terseleksi.
Mengindikasikan font
terseleksi.
Mengindikasikan apakah
kotak dialog menetapkan sebuah kondisi error jika user mencoba memasukkan
font yang tidak ada.
Mengindikasikan ukuran
maksimum (dalam point) yang dapat dipilih user.
Mengindikasikan ukuran
minimum (dalam point) yang dapat dipilih user.
Mengindikasikan apakah
kotak dialog memuat sebuah tombol Apply.
Mengindikasikan apakah
kotak dialog menampilkan pilihan warna.
Mengindikasikan apakah
kotak dialog memuat kontrol-kontrol yang dapat dipakai user untuk menetapkan
opsi strikethrough, underline, dan warna teks.
Mengindikasikan apakah
kotak dialog menampilkan sebuah tombol Help.
|
Metode-Metode dari FontDialog
Anda hanya akan
menggunakan satu metode (ShowDialog)
dari FontDialog pada latihan
berikut. Metode lain yang tersedia adalah Reset,
yang dapat Anda pakai untuk mengatur semua properti menjadi nilai defautnya.
Menggunakan Kontrol FontDialog
Anda dapat menampilkan
kontrol FontDialog tanpa menetapkan
properti apapun:
FontDialog1.ShowDialog()
Kotak dialog akan
ditampilkan seperti pada Gambar 6.9.
GAMBAR 6.9
Perhatikan bahwa kotak
dialog memuat bagian Effects yang
dapat Anda pakai untuk mencentang opsi Strikeout
dan Underline. Namun, seleksi warna
dari font tidak disediakan secara default. Jika Anda menginginkannya, Anda
perlu menetapkan properti ShowColor
sebelum memanggil metode ShowDialog
pada kotak dialog:
FontDialog1.ShowColor = True
FontDialog1.ShowDialog()
Metode ShowDialog dari kotak dialog ini, sama
seperti sebelumnya, menghasilkan sebuah nilai bertipe data DialogResult. Nilai tersebut berupa DialogResult.OK atau DialogResult.Cancel.
Ketika user selesai
menggunakan kotak dialog ini, Anda dapat memeriksa properti Font dan Color untuk melihat font dan warna yang digunakan oleh user. Anda
kemudian dapat memeriksa properti-properti lain dan menyimpannya pada sebuah
variabel.
LATIHAN
|
Menggunakan FontDialog
|
Setelah Anda mengetahui
tampilan dari kotak dialog Font dan
bagaimana cara memanggilnya, Anda dapat menggunakannya pada latihan berikut.
Dengan menggunakan program dari dua latihan terakhir, Anda akan bisa
menempatkan isi file yang dibaca ke dalam kotak teks pada form. Anda kemudian
dapat menggunakan kontrol FontDialog
untuk menampilkan kotak dialog Font,
yang dapat Anda pakai untuk memilih font. Kemudian Anda dapat mengubah font
pada kotak teks menjadi font yang telah Anda pilih.
1. Kembali ke mode Designer pada projek
Dialog Windows Forms.
2. Tambahkan tombol lain dari Toolbox dan tetapkan
properti-propertinya sesuai dengan nilai-nilai berikut:
Tetapkan
Name menjadi tombolFont.
Tetapkan
Anchor menjadi Top, Right.
Tetapkan
Location menjadi 349, 73.
Tetapkan
Text menjadi Font.
3. Anda akan perlu menambahkan kontrol FontDialog pada projek Anda, jadi cari
kontrol ini dari jendela Toolbox dan
geret dan tempatkan pada form Anda; kontrol tersebut akan ditempatkan di bawah
form secara otomatis.
4. Anda akan menambahkan kode berikut
pada event handler Click dari tombol
Font, jadi klik ganda pada tombol
tersebut dan tambahkan kode yang ditebalkan berikut:
Private Sub
tombolFont_Click(sender As Object, e As EventArgs) Handles tombolFont.Click
'Menetapkan
properti-properti dari dialog Font
FontDialog1.ShowColor = True
'Menampilkan
dialog Font dan jika user mengklik tombol OK,
'perbarui
font dan warna pada kotak teks
If
FontDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
teksFile.Font = FontDialog1.Font
teksFile.ForeColor = FontDialog1.Color
End If
End Sub
5. Jalankan projek Anda. Ketika form
Anda telah ditampilkan, klik tombol Font
untuk menampilkan kotak dialog Font
seperti ditunjukkan pada Gambar 6.10. Pilih font baru dan warna lain dan
kemudian klik OK.
GAMBAR
6.10
6. Ketikkan teks tertentu pada kotak
teks pada form Anda. Teks akan ditampilkan dengan font dan warna yang telah
Anda pilih.
7. Font dan warna yang sama ini juga akan diterapkan pada
teks yang dimuat dari sebuah file. Untuk mendemonstrasikannya, klik tombol Buka pada form dan buka sebuah file
teks. Teks dari file tersebut akan ditampilkan dengan font dan warna yang telah
Anda pilih pada kotak dialog Font.
Penjelasan
Anda mengetahui bahwa
kotak dialog Font tidak menampilkan
kotak Color secara default, jadi
Anda perlu menetapkan properti ShowColor
dari kontrol FontDialog menjadi True, sehingga kotak Color ditampilkan:
'Menetapkan
properti-properti dari dialog Font
FontDialog1.ShowColor = True
Selanjutnya, Anda akan
menampilkan kotak dialog Font. Ingat
bahwa DialogResult akan menghasilkan
sebuah nilai berupa OK atau Cancel, jadi Anda dapat membandingkan
nilai balik dari kontrol FontDialog
dengan Windows.Forms.DialogResult.OK.
Jika tombol yang diklik user adalah OK, maka Anda mengeksekusi kode di dalam
statemen If.End If:
'Menampilkan dialog Font
dan jika user mengklik tombol OK,
'perbarui font dan warna
pada kotak teks
If FontDialog1.ShowDialog
= Windows.Forms.DialogResult.OK Then
teksFile.Font = FontDialog1.Font
teksFile.ForeColor = FontDialog1.Color
End If
Anda menetapkan properti Font dari kotak teks (teksFile) sama dengan properti Font dari kontrol FontDialog. Ini adalah font yang dipilih user. Kemudian Anda
menetapkan properti ForeColor dari
kotak teks sama dengan properti Color
dari kontrol FontDialog, karena ini
adalah warna yang dipilih user. Setelah properti-properti ini diubah untuk
kotak teks, teks yang ada pada kotak teks secara otomatis akan diperbarui untuk
merefleksikan font dan warna baru. Jika kotak teks tidak memuat teks apapun,
maka semua teks baru yang diketikkan atau dimuat ke kotak teks akan ditampilkan
dengan font dan warna baru.
KONTROL COLORDIALOG
Kadangkala Anda perlu
membolehkan user untuk memodifikasi warna pada form. Ini bisa jadi warna dari
form itu sendiri, sebuah kontrol, atau teks pada sebuah kotak teks. Visual
Basic menyediakan kontrol ColorDialog
untuk kebutuhan itu. Sekali lagi, kontrol ColorDialog
dapat dipakai sebagai sebuah kelas yang dideklarasikan di dalam kode tanpa
menggeret sebuah kontrol dari jendela Toolbox.
Kontrol ColorDialog, seperti ditunjukkan pada
Gambar 6.11, dapat dipakai user untuk memilih 48 warna dasar. Perhatikan bahwa
user dapat mendefinisikan warna sendiri, menambahkan fleksibilitas warna pada
aplikasi Anda. Ketika user mengklik tombol Define
Custom Colors pada kotak dialog Color,
kotak itu akan memperbarui warna untuk memenuhi kebutuhan Anda (lihat Gambar
6.12).
GAMBAR 6.11
GAMBAR 6.12
Dengan kesempatan
modifikasi dan fleksibilitasn ini pada aplikasi Anda, Anda dapat memiliki form
dengan tampilan profesional.
Properti-Properti dari ColorDialog
Sebelum Anda mempelajari
kode, pelajari lebih dahulu properti-properti yang tersedia untuk kontrol ColorDialog, yang ditunjukkan pada
Tabel 6.9.
TABEL 6.9: Sejumlah properti dari kontrol ColorDialog
Properti
|
Penjelasan
|
AllowFullOpen
AnyColor
Color
CustomColors
FullOpen
ShowHelp
SolidColorOnly
|
Mengindikasikan apakah
user dapat menggunakan kotak dialog untuk mendefinisikan warna sendiri.
Mengindikasikan apakah
kotak dialog menampilkan semua warna yang tersedia pada himpunan warna dasar.
Mengindikasikan warna
yang diseleksi oleh user.
Mengindikasikan
himpunan warna sendiri pada kotak dialog.
Mengindikasikan apakah
kontrol-kontrol yang dipakai untuk menciptakan warna sendiri visibel ketika
kotak dialog dibukan.
Mengindikasikan apakah
tombol Help ditampilkan pada kotak
dialog.
Mengindikasikan apakah
kotak dialog akan membatasi user dalam memilih hanya warna-warna yang solid.
|
Tidak banyak properti
yang perlu Anda khawatirkan untuk kotak dialog ini, yang membuatnya jauh lebih
sederhana digunakan daripada kotak-kotak dialog lain yang telah Anda uji sejauh
ini.
Sama seperti kotak dialog
lainnya, ColorDialog memuat sebuah
metode ShowDialog. Karena Anda telah
menggunakan metode ini pada contoh-contoh sebelumnya, ia tidak perlu
didiskusikan kembali.
Menggunakan Kontrol ColorDialog
Apa yang Anda perlu
lakukan untuk menampilkan kotak dialog Color
adalah mengeksekusi metode ShowDialog:
ColorDialog1.ShowDialog()
Kontrol ColorDialog akan menghasilkan nilai OK atau Cancel yang keduanya bertipe DialogResult.
Untuk membaca warna yang
dipilih user, Anda dapat membaca himpunan nilai di dalam properti Color dan menugaskannya kepada sebuah
variabel, seperti properti ForeColor
dari sebuah kotak teks:
teksFile.ForeColor = ColorDialog1.Color
LATIHAN
|
Menggunakan Kontrol ColorDialog
|
Pada latihan ini, Anda
akan melanjutkan penggunakan projek yang sama dan membuat kontrol ColorDialog menampilkan kotak dialog Color. Kemudian, jika kotak dialog
menghasilkan OK (sebuah DialogResult), Anda dapat mengubah warna
latar belakang dari form.
1. Kembali ke mode Designer pada projek
Dialog Windows Forms.
2. Pada form, tambahkan kontrol Button lain dari jendela Toolbox dan tetapkan
properti-propertinya sesuai dengan nilai-nilai berikut:
Tetapkan
Name menjadi tombolWarna.
Tetapkan
Anchor menjadi Top, Right.
Tetapkan
Location menjadi 349, 103.
Tetapkan
Text menjadi Warna.
3. Tambahkan sebuah kontrol ColorDialog pada projek Anda dari
jendela Toolbox. Ia akan ditambahkan
secara otomatis ke bawah form.
4. Klik ganda pada tombol Warna untuk menciptakan event handler Click dan tambahkan kode yang
ditebalkan berikut:
Private
Sub tombolWarna_Click(sender As Object, e As EventArgs) Handles
tombolWarna.Click
'Menampilkan dialog Color dan jika user
mengklik tombol OK,
'perbarui warna latar dari form
If ColorDialog1.ShowDialog =
Windows.Forms.DialogResult.OK Then
Me.BackColor = ColorDialog1.Color
End If
End
Sub
5. Hanya itu kode yang perlu Anda
tambahkan. Mulai projek Anda untuk mengujinya.
6. Ketika form ditampilkan, klik pada
tombol Warna untuk menampilkan kotak
dialog Color. Pilih warna yang Anda
sukai, atau ciptakan warna sendiri dengan mengklik tombol Define Custom Colors.
Setelah Anda memilih warna, klik tombol OK
pada kotak dialog Color. Warna latar
dari form akan diubah sesuai warna yang Anda pilih.
7. Sama seperti kotak dialog Font, Anda
tidak perlu menetapkan properti Color
dari kontrol ColorDialog sebelum
menampilkan kotak dialog Color
kembali. Ia secara otomatis mengingat warna yang dipilih, dan ini akan menjadi
warna yang diseleksi ketika kotak dialog ditampilkan kembali. Untuk mengujinya,
klik tombol Warna kembali; warna
yang Anda pilih sebelumnya merupakan warna terseleksi.
Penjelasan
Kali ini Anda tidak perlu
menetapkan properti apapun dari kontrol ColorDialog,
jadi Anda langsung menampilkannya di dalam sebuah statemen If.End If untuk memeriksa nilai DialogResult yang dihasilkan oleh metode ShowDialog pada kotak dialog ini:
If ColorDialog1.ShowDialog =
Windows.Forms.DialogResult.OK Then
Di dalam statemen If.End If, Anda menambahkan kode yang
diperlukan untuk mengubah properti BackColor
dari form. Jika user mengklik tombol OK
pada kotak dialog Color, warna latar
dari form akan diubah menggunakan baris kode berikut:
Me.BackColor = ColorDialog1.Color
KONTROL PRINTDIALOG
Kebanyakan aplikasi akan
memiliki kapabilitas pencetakan, baik itu pencetakan sederhana maupun
pencetakan kompleks, seperti mengijinkan user untuk mencetak hanya bagian teks
yang terseleksi atau rentang halaman tertentu. Pada bagian ini, Anda akan
mengeksplorasi pencetakan dasar, melihat beberapa kelas yang dapat membantu
Anda mencetak teks dari sebuah file.
Visual Basic menyediakan
kontrol PrintDialog. Ia sebenarnya
tidak melakukan pencetakan, tetapi memampukan Anda menyeleksi printer yang
ingin Anda gunakan dan menetapkan properti-properti printer seperti arah
halaman dan kualitas pencetakan. Anda juga dapat menggunakannya untuk
menetapkan rentang halaman. Anda tidak akan menggunakan fitur-fitur ini pada
contoh berikutnya, tetapi Anda perlu mengetahuinya bahwa fungsionalitas ini
tersedia pada kontrol PrintDialog,
seperti ditunjukkan pada Gambar 6.13.
GAMBAR 6.13
Sama seperti kotak dialog
sebelumnya, dialog Print menyediakan
tombol Print (yang berkaitan dengan
tombol OK pada dialog lain) dan
tombol Cancel; jadi, metode ShowDialognya menghasilkan sebuah nilai
OK atau Cancel bertipe data DialogResult.
Anda kemudian dapat menggunakan hasil ini di dalam sebuah statemen If.End If dan mengujinya.
Properti-Properti dari PrintDialog
Tabel 6.10 menunjukkan
properti-properti yang disediakan dalam kontrol PrintDialog. Sama seperti kotak dialog lain, PrintDialog memiliki sebuah metode ShowDialog.
Tabel 6.10: Properti-properti dari kontrol PrintDialog
Properti
|
Penjelasan
|
AllowCurrentPage
AllowPrintToFile
AllowSelection
AllowSomPages
Document
PrinterSettings
PrintToFile
ShowHelp
ShowNetwork
|
Mengindikasikan apakah
tombol opsi Current Page diaktifkan.
Mengindikasikan apakah
kotak periksa Print to File
diaktifkan.
Mengindikasikan apakah
tombol opsi Selection diaktifkan.
Mengindikasikan apakah
tombol opsi Pages diaktifkan.
Mengindikasikan dokumen
cetak dipakai untuk mendapatkan pengaturan printer.
Mengindikasikan
pengaturan printer yang akan dimodifikasi oleh kotak dialog.
Mengindikasikan apakah
kotak periksa Print to File dicentang.
Mengindikasikan apakah
tombol Help ditampilkan.
Mengindikasikan apakah
tombol Network ditampilkan.
|
Menggunakan Kontrol PrintDialog
Satu-satunya metode yang
akan Anda gunakan adalah metode ShowDialog,
yang akan menampilkan kotak dialog Print
yang ditampilkan pada Gambar 6.13 dengan hanya tombol opsi All page range diaktifkan. Seperti disebutkan
sebelumnya, kontrol PrintDialog
hanya menampilkan kotak dialog Print;
ia tidak melakukan pencetakan. Kode berikut menunjukkan bagaimana Anda
menampilkan kotak dialog Print:
PrintDialog1.ShowDialog()
Kelas PrintDocument
Sebelum Anda dapat
memanggil metode ShowDialog dari
kontrol PrintDialog, Anda perlu
menetapkan properti Document dari
kelas PrintDialog. Properti ini
menerima sebuah kelas PrintDocument,
yang dipakai untuk mendapatkan pengaturan printer dan dapat mengirimkan
keluaran ke printer. Kelas ini memerlukan namespace System.Drawing.Printing, sehingga Anda perlu mencantumkan namespace
ini sebelum mencoba mendefinisikan sebuah objek yang menggunakan kelas PrintDocument.
Properti-Properti dari Kelas PrintDocument
Sebelum melanjutkan, Anda
perlu melihat properti-properti penting dari kelas PrintDocument, yang dicantumkan pada Tabel 6.11.
Tabel 6.11: Sejumlah properti dari kelas PrintDocument
Properti
|
Penjelasan
|
DefaultPageSettings
DocumentName
PrintController
PrinterSettings
|
Mengindikasikan
pengaturan halaman default untuk dokumen.
Mengindikasikan nama
dokumen yang ditampilkan saat pencetakan dokumen. Ini juga merupakan nama
yang ditampilkan pada kotak dialog Print
Status dan antrian pencetakan.
Mengindikasikan
pengendali pencetakan yang memandu proses pencetakan.
Mengindikasikan printer
yang mencetak dokumen.
|
Mencetak Dokumen
Metode Print dari kelas PrintDocument mencetak sebuah dokumen menggunakan printer yang
ditetapkan pada properti PrinterSettings.
Ketika Anda memanggil metode Print
dari kelas PrintDocument, event PrintPage dipicu untuk tiap halaman
yang dicetak. Oleh karena itu, Anda perlu menciptakan sebuah metode untuk event
itu dan menambahkan event handler untuknya. Metode yang akan Anda ciptakan
untuk event PrintPage akan melakukan
pembacaan aktual atas data yang akan dicetak.
Pencetakan menggunakan
kelas PrintDocument memerlukan
banyak kode dan pengetahuan bagaimana pencetakan aktual dilakukan. Untungnya,
dokumentasi help menyediakan sejumlah kode contoh pada kelas PrintDocument. Ini dapat dipakai
sebagai titik awal untuk membantu Anda dalam memahami dasar-dasar pencetakan.
Perhatikan bahwa kode contoh pada dokumentasi help mengasumsikan bahwa satu
baris di dalam file yang akan dicetak tidak melebihi lebar dari halaman
tercetak. Kode contoh pada dokumentasi help mendemonstrasikan bagaimana
mencetak dari sebuah file.
LATIHAN
|
Menggunakan Kontrol PrintDialog
|
Pada latihan ini, Anda
akan memeriksa bagaimana mencetak isi dari sebuah kotak teks.
1. Kembali ke mode Designer pada projek
Dialog Windows Forms.
2. Geret sebuah kontrol Button dari jendela Toolbox. Posisikan kontrol ini di bawah
tombol Warna dan tetapkan
properti-properti dari tombol baru ini:
Tetapkan Name menjadi tombolCetak.
Tetapkan Anchor menjadi Top, Right.
Tetapkan Location menjadi 349, 133.
Tetapkan Text menjadi Cetak.
Tetapkan Name menjadi tombolCetak.
Tetapkan Anchor menjadi Top, Right.
Tetapkan Location menjadi 349, 133.
Tetapkan Text menjadi Cetak.
3. Tambahkan sebuah kontrol PrintDialog pada projek, geret dan
jatuhkan kontrol ini dari Toolbox ke
form. Ia secara otomatis akan ditambahkan ke bawah form.
4. Tukar ke editor kode sehingga Anda
dapat menambahkan namespace untuk pencetakan. Tambahkan namespace ini di atas
kelas Anda:
Imports System.Drawing.Printing
Public Class Dialog
5. Tambahkan deklarasi-deklarasi
variabel berikut di atas kelas Anda:
'Mendeklarasikan
variabel
Private
strNamaFile As String
Private strRekamanCetak As
String
Private WithEvents DialogPD As
PrintDocument
6. Pilih DialogPD di dalam kotak combo Class
Name dan event PrintPage di dalam kotak combo Method Name. Tambahkan kode yang ditebalkan pada event handler DialogPD_PrintPage:
Private Sub
DialogPD_PrintPage(sender As Object, e As PrintPageEventArgs)
Handles
DialogPD.PrintPage
'Mendeklarasikan variabel-variabel
Dim
intKarakterCetak As Integer
Dim
intBarisPerHalaman As Integer
Dim
strCetakData As String
Dim
objStringFormat As New StringFormat
Dim
objCetakFont As New Font("Arial", 10)
Dim
objBatasHalaman As RectangleF
Dim
objLuasanCetak As SizeF
'Mendapatkan
batas-batas halaman
objBatasHalaman = New RectangleF(e.MarginBounds.Left, _
e.MarginBounds.Top, e.MarginBounds.Width, e.MarginBounds.Height)
'Mendapatkan
luasan cetak berdasarkan margin halaman dan font
objLuasanCetak = New SizeF(e.MarginBounds.Width, _
e.MarginBounds.Height - objCetakFont.GetHeight(e.Graphics))
'Memecah
antar kata pada sebuah baris
objStringFormat.Trimming = StringTrimming.Word
'Mendapatkan
banyak karakter yang dicetak
e.Graphics.MeasureString(strRekamanCetak, objCetakFont, objLuasanCetak,
_
objStringFormat, intKarakterCetak, intBarisPerHalaman)
'Mendapatkan
data cetak dari rekaman cetak
strCetakData
= strRekamanCetak.Substring(0, intKarakterCetak)
'Mencetak
halaman
e.Graphics.DrawString(strCetakData, objCetakFont, Brushes.Black, _
objBatasHalaman, objStringFormat)
'Jika masih ada baris-baris, cetak halaman lain
If
intKarakterCetak < strRekamanCetak.Length Then
'Hapus
teks tercetak dari rekaman cetak
strRekamanCetak = strRekamanCetak.Remove(0, intKarakterCetak)
e.HasMorePages = True
Else
e.HasMorePages = False
End If
End Sub
7. Pilih tombolCetak di dalam kotak combo Class Name dan event Click pada kotak combo Method Name. Tambahkan kode yang ditebalkan berikut pada event handler tombolCetak_Click:
Private Sub tombolCetak_Click(sender
As Object, e As EventArgs) Handles tombolCetak.Click
'Menginstansiasi sebuah objek dari kelas PrintDocument
DialogPD =
New PrintDocument
'Menetapkan
properti-properti PrintDialog
With
PrintDialog1
.AllowCurrentPage = False
.AllowPrintToFile = False
.AllowSelection = False
.AllowSomePages = False
.Document = DialogPD
.PrinterSettings.DefaultPageSettings.Margins.Top = 25
.PrinterSettings.DefaultPageSettings.Margins.Bottom = 25
.PrinterSettings.DefaultPageSettings.Margins.Left = 25
.PrinterSettings.DefaultPageSettings.Margins.Right = 25
End With
If
PrintDialog1.ShowDialog = DialogResult.OK Then
'Menetapkan pengaturan printer terseleksi pada PrintDocument
DialogPD.PrinterSettings = PrintDialog1.PrinterSettings
'Mendapatkan data cetak
strRekamanCetak = teksFile.Text
'Memanggil metode Print pada objek PrintDocument
DialogPD.Print()
End If
End Sub
8. Anda sekarang siap untuk menguji
kode Anda, jadi jalankan projek.
9. Klik tombol Buka untuk membuka sebuah file, dan kemudian klik tombol Cetak untuk menampilkan kotak dialog
yang ditampilkan pada Gambar 6.14. Jika Anda memiliki lebih dari satu printer terinstal,
Anda dapat memilih nama printer yang Anda inginkan.
GAMBAR 6.14
Penjelasan
Anda memulai dengan
mengimpor namespace System.Drawing.Printing,
yang diperlukan untuk mendukung pencetakan. Ini adalah namespace dimana di
dalamnya kelas PrintDocument
didefinisikan.
Anda kemudian
mendeklarasikan sebuah variabel dan objek yang diperlukan untuk pencetakan.
Variabel strRekamanCetak adalah
sebuah variabel string yang akan memuat data dari kotak teks yang akan dicetak.
Objek DialogPD akan bertanggung
jawab untuk mencetak teks tersebut.
Perhatikan katakunci WithEvents. Katakunci ini dipakai untuk
mengacu ke sebuah kelas yang dapat memacu event-event, dan akan menyebabkan
Visual Basic untuk mencantumkan event-event tersebut di dalam kotak combo
Method Name di atas dari editor kode:
Private strRekamanCetak As String
Private WithEvents DialogPD As PrintDocument
Event handler DialogPD_PrintPage menangani pencetakan
sebuah halaman keluaran. Event ini awalnya dipanggil setelah Anda memanggil
metode Print pada objek yang
didefinisikan sebagai kelas PrintDocument,
pada kasus ini, DialogPD.
Event handler ini lah
tempat dimana Anda menyediakan kode untuk pencetakan aktual dari sebuah
dokumen, dan Anda perlu menentukan apakah masih ada halaman yang akan dicetak.
Metode ini mengawalinya dengan sejumlah deklarasi variabel. Dua variabel
pertama adalah tipe data Integer dan memuat banyak karakter yang akan dicetak
pada sebuah halaman dan banyak baris yang dapat dicetak pada sebuah halaman.
Variabel strCetakData adalah sebuah tipe data String yang memuat semua data yang akan
dicetak pada satu halaman. Variabel objStringFormat
dideklarasikan sebagai sebuah kelas StringFormat,
dan kelas ini mengenkapsulasi informasi tataletak teks yang dipakai untuk
memformat data yang akan dicetak. Kelas StringFormat
dipakai untuk memangkas data pada batas-batas kata sehingga teks tidak melewati
luasan pencetakan dari sebuah halaman.
Objek objCetakFont didefinisikan sebagai
sebuah kelas Font dan menetapkan
font yang dipakai untuk teks tercetak, sedangkan objek objBatasHalaman didefinisikan sebagai sebuah struktur RectangleF. Struktur RectangleF memuat empat nilai
titik-mengambang yang mendefinisikan lokasi dan ukuran dari sebuah
persegi-panjang dan dipakai untuk mendefinisikan koordinat atas dan kiri dari
sebuah halaman, berikut dengan lebar dan tingginya. Objek objLuasanCetak didefinisikan sebagai sebuah struktur SizeF dan memuat tinggi dan lebar dari
luasan cetakan dari sebuah halaman. Ini merupakan luasan aktual yang dapat Anda
cetak, bukan ukuran aktual dari halaman:
Private Sub DialogPD_PrintPage(sender As Object, e As
PrintPageEventArgs) Handles DialogPD.PrintPage
'Mendeklarasikan
variabel-variabel
Dim
intKarakterCetak As Integer
Dim
intBarisPerHalaman As Integer
Dim
strCetakData As String
Dim
objStringFormat As New StringFormat
Dim
objCetakFont As New Font("Arial", 10)
Dim
objBatasHalaman As RectangleF
Dim
objLuasanCetak As SizeF
Kode di dalam metode ini
mengawali dengan mendapatkan batas-batas halaman. PrintPageEventArgs yang dilewatkan kepada metode ini di dalam
parameter e memuat koordinat atas
dan kiri dari halaman berikut dengan tinggi dan lebar halaman. Nilai-nilai ini
dipakai untuk menetapkan data pada objek objBatasHalaman.
Luasan pencetakan dari
halaman dimuat di dalam properti Width
dan Height dari PrintPageEventArgs. Tinggi aktual dari halaman dihitung menggunakan
metode GetHeight dari kelas Font di dalam objek objCetakFont, karena tiap ukuran font
memerlukan ruang vertikal tersendiri pada sebuah halaman:
'Mendapatkan batas-batas halaman
objBatasHalaman = New RectangleF(e.MarginBounds.Left,
_
e.MarginBounds.Top,
e.MarginBounds.Width, e.MarginBounds.Height)
'Mendapatkan luasan cetak berdasarkan margin halaman
dan font
objLuasanCetak = New SizeF(e.MarginBounds.Width, _
e.MarginBounds.Height -
objCetakFont.GetHeight(e.Graphics))
Anda sekarang menetapkan
properti Trimming dari objek objStringFormat untuk
menginstruksikannya memecah data pada sebuah baris menggunakan batas-batas
kata. Ini dilakukan menggunakan enumerasi StringTrimming,
yang memuat konstanta Word. Ini
memastikan bahwa satu baris cetak tidak melebihi batas-batas dari sebuah
halaman cetak.
Anda kemudian perlu
menentukan banyak karakter yang akan cukup pada sebuah halaman berdasarkan
luasan cetak dari halaman, ukuran font yang digunakan, dan data yang akan
dicetak. Ini dilakukan menggunakan metode MeasureString
dari kelas Graphics. Metode ini akan
mengambil data yang akan dicetak, font yang digunakan pada halaman, dan luasan
cetak dari halaman dan pemformatan yang akan diterapkan, dan kemudian
menentukan banyak karakter yang dapat dicetak dan banyak baris yang cukup pada
sebuah halaman cetak. Banyak karakter cetak dan banyak baris akan ditetapkan pada
variabel intKarakterCetak dan intBarisPerHalaman, yang dilewatkan
kepada metode MeasureString.
Setelah Anda mengetahui
banyak karakter yang cukup pada sebuah halaman, Anda mendapatkan data itu dari
variabel strRekamanCetak dan
menetapkan data yang akan dicetak pada variabel strCetakData. Ini adalah variabel yangakan memuat data yang secara
aktual dicetak:
'Memecah antar kata pada sebuah baris
objStringFormat.Trimming = StringTrimming.Word
'Mendapatkan banyak karakter yang dicetak
e.Graphics.MeasureString(strRekamanCetak,
objCetakFont, objLuasanCetak, _
objStringFormat,
intKarakterCetak, intBarisPerHalaman)
'Mendapatkan data cetak dari rekaman cetak
strCetakData = strRekamanCetak.Substring(0,
intKarakterCetak)
Setelah Anda memiliki
data yang akan dicetak pada variabel strCetakData,
Anda siap untuk mengirim data ke printer. Kali ini Anda akan menggunakan metode
DrawString dari kelas Graphics. Metode ini akan memformat dan
mengirimkan data ke printer.
Parameter-parameter yang
Anda lewatkan kepada metode DrawString
adalah data yang akan dicetak, font yang akan dipakai dalam pencetakan, sebuah
objek Brushes yang merepresentasikan
warna font dari teks yang akan dicetak, batas-batas halaman, dan sebuah objek StringFormat yang dipakai untuk
memformat keluaran tercetak:
'Mencetak halaman
e.Graphics.DrawString(strCetakData, objCetakFont,
Brushes.Black, _
objBatasHalaman,
objStringFormat)
Bagian terakhir dari kode
di dalam metode ini menentukan apakah masih ada data yang akan dicetak. Anda
membandingkan nilai yang dimuat di dalam variabel intKarakterCetak dengan panjang dari variabel strRekamanCetak menggunakan properti Length dari kelas String.
Properti Length menghasilkan banyak
karakter di dalam string.
Jika nilai yang dimuat di
dalam variabel intKarakterCetak
kurang dari panjang dari variabel strRekamanCetak,
maka akan masih ada data yang akan dicetak. Pada kasus ini, Anda lebih dulu
menghapus data dari strRekamanCetak
yang telah dicetak menggunakan metode Remove
dari kelas String. Metode Remove menerima posisi awal untuk
menghapus data dan banyak data yang akan dihapus. Banyak data yang akan dihapus
dimuat di dalam variabel intKarakterCetak,
data yang telah dicetak.
Terakhir, Anda menetapkan
properti HasMorePages dari parameter
PrintPageEventArgs menjadi True, yang mengindikasikan bahwa masih
ada data yang akan dicetak. Pengaturan properti ini menjadi True akan menyebabkan event PrintPage dari objek DialogPD dipicu sekali lagi, dan event
handler ini akan dieksekusi kembali untuk melanjutkan pencetakan sampai semua
data dicetak.
Jika tidak ada data lagi
yang akan dicetak, Anda menetapkan properti HasMorePages menjadi False:
'Jika masih ada baris-baris, cetak halaman lain
If
intKarakterCetak < strRekamanCetak.Length Then
'Hapus teks tercetak dari rekaman cetak
strRekamanCetak = strRekamanCetak.Remove(0,
intKarakterCetak)
e.HasMorePages = True
Else
e.HasMorePages = False
End If
Kode di dalam event Click dari tombol Cetak kurang kompleks bila dibandingkan dengan kode di dalam event
handler DialogPD_PrintPage. Metode
ini mengawali dengan menginstansiasi sebuah objek baru dari kelas PrintDocument di dalam objek DialogPD.
Anda kemudian menetapkan
properti-properti dari kontrol PrintDialog
sebelum menampilkannya. Karena Anda hanya memiliki satu metode untuk
menampilkan semua halaman, Anda akan menonaktif-kan fitur-fitur yang
mengijinkan pencetakan hanya untuk halaman terkini, pencetakan ke sebuah file,
pencetakan seleksi teks, dan pencetakan halaman tertentu. Ini semua dilakukan
dengan menetapkan empat properti pertama di dalam kode menjadi False.
Selanjutnya, Anda perlu
menetapkan properti Document dari PrintDialog menjadi objek PrintDocument Anda sehingga dialog
tersebut dapat memuat pengaturan printer. Pengaturan printer diatur dan dibaca
di dalam objek PrintDocument dan
dapat diubah melalui properti PrinterSettings
dari PrintDialog.
Terakhir, Anda menetapkan
margin-margin default yang akan dipakai ketika mencetak dokumen di dalam
properti PrinterSettings. Ini dapat
dilakukan sebelum PrinterDialog
ditampilkan:
'Menginstansiasi sebuah objek dari kelas PrintDocument
DialogPD = New PrintDocument
'Menetapkan properti-properti PrintDialog
With
PrintDialog1
.AllowCurrentPage = False
.AllowPrintToFile = False
.AllowSelection = False
.AllowSomePages = False
.Document = DialogPD
.PrinterSettings.DefaultPageSettings.Margins.Top
= 25
.PrinterSettings.DefaultPageSettings.Margins.Bottom
= 25
.PrinterSettings.DefaultPageSettings.Margins.Left
= 25
.PrinterSettings.DefaultPageSettings.Margins.Right
= 25
End With
Hal terakhir yang ingin
Anda lakukan pada metode ini adalah menampilkan PrintDialog dan memeriksa nilai OK bertipe DialogResult.
Jika user mengklik tombol Print, PrintDialog akan menghasilkan nilai OK bertipe DialogResult dan Anda memanggil pencetakan data.
Hal pertama yang Anda
lakukan pada blok If…Then adalah
membaca pengaturan printer dari PrintDialog
dan menetapkannya pada DialogPD.
Jika user mengubah margin atau pengaturan printer lain, Anda dapat
melewatkannya kepada PrintDocument
yang dipakai untuk mencetak data.
Anda juga akan menetapkan
data yang akan dicetak dari kotak teks pada variabel strRekamanCetak. Terakhir, Anda memanggil metode Print pada objek DialogPD untuk mengawali proses pencetakan. Pemanggilan metode Print akan memicu event PrintPage pada objek DialogPD, yang menyebabkan kode di
dalam event handler DialogPD_PrintPage
dieksekusi:
If PrintDialog1.ShowDialog = DialogResult.OK Then
'Menetapkan pengaturan printer terseleksi pada
PrintDocument
DialogPD.PrinterSettings
= PrintDialog1.PrinterSettings
'Mendapatkan
data cetak
strRekamanCetak
= teksFile.Text
'Memanggil
metode Print pada objek PrintDocument
DialogPD.Print()
End If
KONTROL FOLDERBROWSERDIALOG
Kadangkala, Anda perlu
membolehkan user untuk menyeleksi folder. Kontrol FolderBrowserDialog menampilkan kotak dialog Browse For Folder, yang memampukan user untuk memilih folder. Kotak
dialog ini tidak menampilkan file, hanya folder-folder, yang menyediakan cara
agar user dapat memilih folder yang diperlukan oleh aplikasi Anda.
Sama seperti kotak dialog
lain yang telah Anda pelajari sejauh ini, kontrol FolderBrowserDialog dapat pula digunakan sebagai sebuah kelas di
dalam kode. Kotak dialog Browse For
Folder, yang ditunjukkan pada Gambar 6.15 tanpa modifikasi apapun,
memampukan user untuk menjelajah dan memilih folder. Perhatikan bahwa terdapat
tombol Make New Folder yang dapat
dipakai untuk menciptakan folder baru.
Properti-Properti dari FolderBrowserDialog
Sebelum Anda melanjutkan,
Anda perlu menengok properti-properti yang tersedia untuk kontrol FolderBrowserDialog, yang ditampilkan
pada Tabel 6.12.
Tabel 6.12: Sejumlah properti dari kontrol FolderBrowserDialog
Properti
|
Penjelasan
|
Description
RootFolder
SelectedPath
ShowNewFolderButton
|
Menyediakan pesan
deskriptif pada kotak dialog.
Mengindikasikan folder
akar dari mana kotak dialog mulai menjelajah.
Mengindikasikan folder
yang diseleksi oleh user.
Mengindikasikan apakah tombol
Make New Folder ditampilkan pada kotak dialog.
|
Sama seperti kontrol
dialog lainnya, FolderBrowserDialog
memuat sebuah metode ShowDialog.
Anda telah melihat metode ini pada contoh-contoh sebelumnya, jadi tidak perlu
dijelaskan kembali.
Menggunakan Kontrol FolderBrowserDialog
Sebelum manampilkan kotak
dialog Browse For Folder, Anda perlu
menetapkan beberapa properti dasar. Tiga properti utama yang perlu Anda
tetapkan ditampilkan pada snippet kode beriku. Properti pertama adalah properti
Description. Properti ini dipakai
untuk menyediakan penjelasan atau instruksi bagi user Anda.
Properti berikutnya
adalah RootFolder, yang menetapkan
folder awal dari mana kotak dialog Browse
For Folder menjelajah. Properti ini menggunakan salah satu konstanta
dari enumerasi Environment.SpecialFolder.
Umumnya, Anda akan
menggunakan konstanta MyComputer
untuk menetapkan bahwa penjelajahan akan diawali pada level MyComputer, atau Anda akan menggunakan
konstanta MyDocuments untuk
menetapkan bahwa penjelajahan akan diawali pada level My Documents.
Properti terakhir yang
ditunjukkan pada snippet kode ini adalah properti ShowNewFolderButton. Properti ni memiliki nilai default True, yang mengindikasikan bahwa tombol
Make New Folder selalu ditampilkan.
Namun, jika Anda tidak menginginkan tombol ini ditampilkan, Anda bisa
menetapkannya menjadi False:
With FolderBrowserDialog1
.Description
= "Pilih folder"
.RootFolder
= Environment.SpecialFolder.MyComputer
.ShowNewFolderButton
= False
End With
Setelah Anda menetapkan
properti-properti yang diperlukan, Anda mengeksekusi metode ShowDialog untuk menampilkan kotak
dialog:
FolderBrowserDialog1.ShowDialog()
Kontrol FolderBrowserDialog akan menghasilkan
nilai OK atau Cancel, yang keduanya bertipe data DialogResult. Di sini, Anda dapat menggunakan statemen yang ada di
dalam statemen If.End If sebelumnya
dan menguji apakah dihasilkan nilai OK
atau tidak.
Untuk membaca folder yang
dipilih oleh user, Anda cukup membaca nilai yang ditetapkan pada properti SelectedPath dan menugaskannya kepada
sebuah variabel. Folder yang dihasilkan merupakan nama path lengkap. Sebagai
contoh, jika Anda memilih sebuah folder dengan nama Temp di drive C akan, maka
path yang akan dihasilkan adalah C:\Temp:
strFolder = FolderBrowserDialog1.SelectedPath
LATIHAN
|
Menggunakan Kontrol FolderBrowserDialog
|
Pada latihan ini, Anda
akan melanjutkan projek Dialog Windows
Forms dan menggunakan kontrol FolderBrowserDialog
untuk menampilkan kotak dialog Browse
For Folder. Kemudian, jika kotak dialog menghasilkan nilai OK, yang bertipe data DialogResult, maka Anda akan
menampilkan folder terseleksi pada kotak teks pada form Anda.
1. Kembali ke projek Dialog Windows Forms.
2. Tambahkan kontrol Button lain dari Toolbox ke form di bawah tombol Cetak dan tetapkan properti-propertinya sebagai berikut:
Tetapkan Name menjadi tombolJelajah.
Tetapkan Anchor menjadi Top, Right.
Tetapkan Location menjadi 349, 163.
Tetapkan Text menjadi Jelajah.
Tetapkan Name menjadi tombolJelajah.
Tetapkan Anchor menjadi Top, Right.
Tetapkan Location menjadi 349, 163.
Tetapkan Text menjadi Jelajah.
3. Tambahkan sebuah kontrol FolderBrowserDialog pada projek Anda
dari Toolbox. Ia akan ditambahkan
secara otomatis ke bawah form.
4. Klik ganda pada tombol Jelajah untuk menciptakan event handler
Click, dan tambahkan kode yang
ditebalkan berikut:
Private Sub
tombolJelajah_Click(sender As Object, e As EventArgs) Handles
tombolJelajah.Click
'Menetapkan
properti-properti dialog FolderBrowser
With
FolderBrowserDialog1
.Description = "Pilih folder"
.RootFolder = Environment.SpecialFolder.MyComputer
.ShowNewFolderButton = False
End With
'Menampilkan
dialog FolderBrowser dan jika user mengklik
'tombol OK,
tampilkan folder terseleksi
If
FolderBrowserDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
teksFile.Text = FolderBrowserDialog1.SelectedPath
End If
End Sub
5. Ketika form ditampilkan, klik tombol
Jelajah, dan Anda akan melihat
dialog Browse For Folder seperti ditunjukkan
pada Gambar 6.16.
6. Sekarang jelajah komputer Anda dan
pilih sebuah folder. Ketika Anda mengklik tombol OK, folder terseleksi akan ditampilkan pada kotak teks pada form
Anda. Perhatikan bahwa folder yang dihasilkan memuat nama path utuh.
No comments:
Post a Comment