Programımızda formda olmayan bir kontrolü çalışma anında eklemeiz gerekebilir. Bunun için Kontrolü önceden Visible ı False olarak ekleyip gerektiğinde True yapmaktan daha uygulanabilir yöntemleri inceliyoruz. Programımızda formda olmayan bir kontrolü çalışma anında eklemeiz gerekebilir. Şimdi hemen bizde kontrolü önceden Form a ekler Visible özelliğini False olarak ayarlarız, eklememiz gerekince de Visible özelliğini True yaparak kullanırız diyenler çıkacak. Evet bu uygulanabilinecek bir yöntem. Fakat Form a 100 tane kontrol eklememiz gerekirse hepsini tek tek forma ekleyip çalışma anında da Visible larını true mi yapıcaz. Tabi ki bu çok kullanışlı bir yöntem değil. Kontrolü Forma eklesek bile o kadar çok kontrolle aynı anda çalışmak çok zor olacaktır. Ayrıca o kadar çok kontrolün bilgisayarı ne kadar yoracağınını tahmin edebiriz. Oysa biz kontrolü sadece gerektiğinde Form a ekleyip böylece kullanılmasa bile bilgisayarı yormayan bir yöntem arıyoruz. Peki ne yapıcaz? Elbet Bill Gates amca bizim için bişeyler düşünmüştür diyoruz ve bu iş için gerekli kodlara bakıyoruz. Bunun için çeşitli yöntemler var. Hepsini tek tek görelim. Şimdi formumuza 1 adet TextBox ve bir CommandButon ekliyoruz. TectBox ın index değerini 0 olarak ayarlıyoruz. Command1 in Click olayına şu kodu yazıyoruz. Load Text1(Text1. Count) Text1(Text1. Count - 1). Top = 0 Text1(Text1. Count - 1). Left = 0 Text1(Text1. Count - 1). Visible = True İlk satırda forma bi tane TextBox yüklemesini söyledik. Ancak bu TextBox ın indexi en yüksek index li TextBox ın indexinden 1 fazla (Count sayıyı verir. Biz indexi 0 dan başlatığımız için sonuna +1 yazmamıza gerek yok) İkinci ve üçüncü satırlarda bu TextBox ı hizalıyoruz. Hizalamazsak form da gözükmeyebiliyor. Bu sefer Count tan 1 çıkarmamızın sebebi artık Text1 sayısında artış olması Son satırda ise Visible özelliğini True yapıyoruz. Çünkü forma eklendiğinde visible özelliği false olarak ekleniyor. Başka bir yöntemde ise... Forma sadece bir Command Button ekliyoruz ve Click olayına şunu yazıyoruz. Dim ctlName As Control Set ctlName = Form1. Controls. Add("VB. TextBox", "Text1", Form1) ctlName. Visible = True İlk satırda ctlName yi Control olarak tanımladık İkinci satırda ise Form1 e adı Text1 olan bir TextBox ekledik. Son satırda ise yine visible ını True yaptık. Her iki yöntemde de eklediğimiz Kontrolü silmek için; Unload KontrolünAdı kodunu kullanıyoruz. Kolay Gelsin...

Yws bu bnm 2-3 gün önce başka bi siteye eklediğim makale değilmi. Neyse zaten bende buradan aldığım bi linkteki bilgiileri türkçeleştirerek oraya atmıştım. Bu arada clayman sorduğu sorunun cevabını vereyim. Orda çıkan yazının türkçesi şudur; Zaten bu isimde(text1) bir kontrol var. sanırım butona 2 kere bastın. İlkinde değil ikincisinde hata verdi. Biliyorsun aynı formda aynı isimde iki kontrol olamaz. Ya ayrıca forma sonradan eklediğimiz kontroller için olay yazmayı bulamadım. Bulan olursa haber verirse sevinirim

tmm da bu kodlarda her buton bi nesne mi ekleyebiliyor ben her tıklayışta yeni bir nesne ekler die düşünmüştüm. dediğim gibi ben kodları farklı anlamışım. Teşekkürler açıklaman

burasını denedim ama bende hata verdi. 2. Tıklayışımda There is already a control with the name 'Text1' diye bir hata verdi. Paylaşımın için teşekkürler.

Yok yws istersen bi butonla istediğin kadar kontrol ekleyebilirsin. Set ctlName = Form1. Controls. Add("VB. TextBox", "Text1", Form1) bu satırdaki Text1 ibaresi o kontrolün ismine karşılık geliyor mesela a diye bi değişken oluşturursun. Butona her tıklandığında a nın değerini bir arttırırsın. bu koddaki "Text1" yerinede a yazdın mı istediğin kadar kontrol oluşturabilirsin.

Güzel Paylaşımlar yapıyorsun teşekürler.