Picproje Elektronik Sitesi

PROGRAMLAMA DİLLERİ => Visual C# => Konuyu başlatan: ziyaretci - 25 Temmuz 2014, 00:56:49

Başlık: Yazılımsal TextBox ekleme sorunu!
Gönderen: ziyaretci - 25 Temmuz 2014, 00:56:49
Merhaba, yazılımsal olarak aşağıdaki kodlar ile textbox ekliyorum. Fakat el ile eklerken ki gibi nasıl isimlendirebilirim? Ve isimlendirdikten sonra derleyiciden bu ismi nasıl alabilirim?
 
Aşağıdaki kodlar otomatik olarak isim atıyor olabilir (textbox1 , ..2 , ..3 vs.) fakat program çalıştıktan sonra text box eklendiği için derlemeden önce isim olarak çağıramıyorum. 

Yardımcı olursanız C# 'da bir adım daha ileriye gitmiş olacağım.

TextBox textbox = new TextBox();
                    textbox.Top = satir;
                    textbox.Left = sutun;
                    textbox.Width = 100;
                    textbox.Height = 20;
                 
                    textbox.Text = "";
                    this.Controls.Add(textbox);
Başlık: Ynt: Yazılımsal TextBox ekleme sorunu!
Gönderen: ArifAhmet - 25 Temmuz 2014, 01:12:57
İsim olarak çağıramıyorsanız, tanımlamadan sonraki satırları nasıl yazdınız, kod tamamlama özelliğini kullanmadınızmı? Normalde görünmesi gerekiyor. Fakat tanımladığınız alanda önemli.
Başlık: Ynt: Yazılımsal TextBox ekleme sorunu!
Gönderen: mir_as82 - 25 Temmuz 2014, 01:21:16
Hocam tam hatirlamamak ile birlikte c# ta şu mantik vardi. Application.run dan sonra kontrol form.designer a birakiliyor sen kontrolünü o kodun içinde yazabilirsin. Veya kod yürütülürken run time da form unun içine o kontrolü bekleyebilirsin. Ama ekleme işi form içine olmali.
Başlık: Ynt: Yazılımsal TextBox ekleme sorunu!
Gönderen: Salih - 25 Temmuz 2014, 01:24:01
Delphi'de name özelliği var. Mantık aynı olduğuna name özelliğine atama yapabilmeniz gerekir.
Başlık: Ynt: Yazılımsal TextBox ekleme sorunu!
Gönderen: barisertekin - 25 Temmuz 2014, 01:41:39
TextBox txt= new TextBox();
txt.ID = "txtAdi";
this.Controls.Add(txt);

Bu kontrolü find ederek bulabilirsin. Fakat global tanımladıysan zaten txt.Text = "bla bla"; şeklinde kullanabilirsin.

FindControl

TextBox txtABC = (TextBox)this.FindControl("txtAdi");
txtABC.Text = "ZXC";
Başlık: Ynt: Yazılımsal TextBox ekleme sorunu!
Gönderen: ziyaretci - 25 Temmuz 2014, 21:50:32
Alıntı yapılan: ArifAhmet - 25 Temmuz 2014, 01:12:57
İsim olarak çağıramıyorsanız, tanımlamadan sonraki satırları nasıl yazdınız, kod tamamlama özelliğini kullanmadınızmı? Normalde görünmesi gerekiyor. Fakat tanımladığınız alanda önemli.

Bende yeniyim c# ' örnek verirseniz çok memnun kalırım.

Alıntı yapılan: mir_as82 - 25 Temmuz 2014, 01:21:16
Hocam tam hatirlamamak ile birlikte c# ta şu mantik vardi. Application.run dan sonra kontrol form.designer a birakiliyor sen kontrolünü o kodun içinde yazabilirsin. Veya kod yürütülürken run time da form unun içine o kontrolü bekleyebilirsin. Ama ekleme işi form içine olmali.

Peki araştıracağım.

Alıntı yapılan: barisertekin - 25 Temmuz 2014, 01:41:39
TextBox txt= new TextBox();
txt.ID = "txtAdi";
this.Controls.Add(txt);

Bu kontrolü find ederek bulabilirsin. Fakat global tanımladıysan zaten txt.Text = "bla bla"; şeklinde kullanabilirsin.

FindControl

TextBox txtABC = (TextBox)this.FindControl("txtAdi");
txtABC.Text = "ZXC";

Denedikten sonra dönüş yapacağım. Cevaplar için teşekkürler.
Başlık: Ynt: Yazılımsal TextBox ekleme sorunu!
Gönderen: ArifAhmet - 25 Temmuz 2014, 21:55:46
Normal yolla eklediğiniz form üyeleri, tam hatılamıyorum (designer.cs olabilir) gibi bir yerde saklanıyor. Oradan örneklerine bakabilirsiniz. Hatta orada tanımlama yapabilirsiniz. Form üyeleri sizin kaynak kodunuzda initializecomponent(); çağırılarak ekleniyor.
Başlık: Ynt: Yazılımsal TextBox ekleme sorunu!
Gönderen: ziyaretci - 26 Temmuz 2014, 00:38:55
Fakat ben herhangi bir değişken veya dizi ile text box eklemek istiyorum, diyelim ki aşağıdaki textbox oluşturma koduna for ekledim. Tamam program çalışırken isimleride kendim belirledim. Ama derlemeden ben, değişken ile oluşturduğum isimleri nasıl çekerim. Misal;

Aşağıda 4 adet textbox oluşturdum. Bir adet button1 olsun. Butona bastığımda "text_adet03" nasıl okurum, derlemeden. Sıkıntım bu.

Öyle bir metod olsun ki;
int say=0;
"okundu  =  "text_adet03". ToString(); // bu dizini programda yazdım. Hata oluşmadı.  Sonuç alabilir miyim?


for (i = 0; i < 4; i++)
                {
                   

                    TextBox textbox= new TextBox();
                    textbox.Top = satir;
                    textbox.Left = sutun;
                    textbox.Width = 100;
                    textbox.Height = 20;
                    textbox.Name = "text_adet" + say+ i;
                    textbox.Text = "";
                    this.Controls.Add(textbox);

                    sutun += 106;

                }





Başlık: Ynt: Yazılımsal TextBox ekleme sorunu!
Gönderen: ArifAhmet - 26 Temmuz 2014, 01:22:44
Sen zaten şuan sadece bir tane textbox oluşturuyorsun. Her döngüde ismi değişiyor.

okundu  =  "text_adet03". ToString(); burada zaten okundu değişkenine "text_adet03" stringini atamışsın. Bi daha stringe dönüştürmen gereksiz.

mesaj birleştirme:: 26 Temmuz 2014, 01:25:18

Anladığım kadarıyla siz program çalışırken eleman eklemek istiyorsunuz ama bu imkansız diye biliyorum çünkü siz o elemanı ekleyince onun derlenmesi gerekiyor.
Başlık: Ynt: Yazılımsal TextBox ekleme sorunu!
Gönderen: ziyaretci - 26 Temmuz 2014, 09:10:24
İmkansız değil ekleyebiliyoruz. Ben program çalışırken ekleyip(burada sorun yok), programı derlemeden ekleyeceğim textbox un yapacağı işlevi ayarlamak istiyorum.

Ve program çalışırken değişkende yer alan isme bağlı olarak ekleyeceğim. Sıkıntım, eklenmeden önce programa nasıl değişkenli textbox kesmesi ekleyebilirim?