Beberapa waktu lalu saya membuat aplikasi dengan menggunakan
vb.net dan ketika aplikasi di test oleh user. User menginginkan agar warna
angka pada textbox yang readonly diberi warna merah.
Dan saya sampaikan ok… tidak masalah.
Kemudian saya merubah properti textbox tersebut, yaitu
merubah forecolor menjadi warna merah. Dan ketika ditest ternyata forecolor
tidak berubah ketika textbox sedang dalam kondisi readonly. Saya menambahkan script merubah forecolor
ketika textbox diset readonly. Tetapi hasilnya warna angka tidak berubah.
Akhirnya saya searching dan menemukan kenyataan bahwa banyak
programmer menghadapi masalah yang sama. Penjelasannya kenapa hal ini terjadi
adalah secara default, jika kita tidak menentukan BackColor, dan mengatur
kontrol untuk readonly, itu menggunakan "Enabled == false" untuk menggambar
ulang kontrol. Secara pribadi, saya pikir ini adalah bug.
Jadi solusi untuk masalah ini adalah kita harus tentukan
backcolor secara script kemudian tentukan forecolor secara script. Hal ini akan
menyebabkan properti kontrol yang di-readonly-kan akan di gambar ulang.
Contoh scripnya:
Me.TextBox8.ForeColor
= Color.Red
Me.TextBox8.BackColor
= Color.White
Selamat Mencoba