combobox değerini text olarak çekip , if döngüsüyle sınama
-
11 Haziran 2011 Cumartesi 14:14
comboboxumda bir collection oluşturdum.
doktor,admin,hemşire,güvenlik şeklinde.
ben burada örnek olarak combobox'umda seçili değer doktor olursa , hemen yanına bir button yaratmaya çalışıyorum. Javada bu yol var, ama C# da olmadı .
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
//Object selectedItem = comboBox1.SelectedItem;
string selectedcmbox = comboBox1.SelectedItem.ToString();
if ( selectedcmbox.ToString() == "Doctor")
{
Button myButton = new Button();
myButton.Text = "Assign section";
myButton.Location = new Point(260, 315);
Controls.Add(myButton);
}
}button eklenmiyor ?
Tüm Yanıtlar
-
11 Haziran 2011 Cumartesi 14:56Moderatör
Selam cinobilly (Ginobili) :),
Aslında buton ekleniyor ancak Location property değeri uygunsuz olduğundan form dışında kalıyor bence. O yüzden bu şekilde revize edin:
//Örneğin "Doctor" seçildiğinde combobox nerede olursa olsun yanına buton eklensin
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
string selectedcmbox = comboBox1.SelectedItem.ToString();
if (selectedcmbox.ToString() == "Doctor")
{
Button myButton = new Button();
//Makul bir buton boyutu belirt
myButton.Size = new Size(75, 23);
myButton.Text = "Bu bir düğme";
myButton.Location = new Point(comboBox1.Width + myButton.Size.Width, comboBox1.Location.Y);
myButton.Click += new EventHandler(myButton_Click);
this.Controls.Add(myButton);
}
}
void myButton_Click(object sender, EventArgs e)
{
MessageBox.Show("Buton tıklandı!");
}Hala butonu formda göremiyorsanız, sorun Doctor öğesinin yanında göremediğiniz bir " " (boşluk) veya Doktor/Doctor diyalektinin dalgınlıkla combobox içerisinde Doktor olarak yer alıyor olmasından kaynaklabilir.
Tabi bununla da bitmiyor, eklediğiniz butonun bir işe yaraması için en azıncan Click olay yordamını kaydedip ilgili olay için prosedür yordamı da yukarıdaki kodda açmış olduk.
İyi çalışmalar.
Best regards, Saygılarımla, Onur Güzel
Yazgeliştir Forumları VB.NET / C# Süper Moderatorü.
Microsoft Haber Grupları Profilim (VB.NET) -
11 Haziran 2011 Cumartesi 17:09teşekkürler, bu kısım yüzünden vs2010 u sildim :( şimdi 2008 yüklüyorum, inşallah çalışır.
-
11 Haziran 2011 Cumartesi 18:56çalışmadı yine :(
-
11 Haziran 2011 Cumartesi 19:07
Pardon :) çalışıyor , teşekkürler
lakin ben tabpage eklediğim için geçerli tab sayfasına değil, altına ekliyormuş , o yüzden göremedim . location u arttırınca altta açık kalan formdaki yerde çıktı.
bunu nasıl yapabilirim ?
-
11 Haziran 2011 Cumartesi 20:23Moderatör
Pardon :) çalışıyor , teşekkürler
lakin ben tabpage eklediğim için geçerli tab sayfasına değil, altına ekliyormuş , o yüzden göremedim . location u arttırınca altta açık kalan formdaki yerde çıktı.
bunu nasıl yapabilirim ?
Açıklamalı bir ekran görüntüsü yollamadan fazla bir yorum yapamayız. Tabi birde kullandığınız ek kod varsa yollayınız. Gönderdiğim kod bloğu, combobox formun neresinde konumlu ise bir miktar sağına dinamik olarak buton oluşturuyor, sorun yok.TabControl.SelectTab ile ekleme sırasında ilgili tabi aktif hale getirip butonu görünür hale getirebilirsiniz. Buton zaten ilgili tabpage içinde bulunan combobox'un yanına konumlanmış olacak. Yeter ki kod bloğunu ilgili tabpage'in içerisinde yazmış olunuz veya butonu TabPage.Controls.Add ile direkt ilgili(spesifik) tabpage içine ekleyiniz.
İyi çalışmalar.
Best regards, Saygılarımla, Onur Güzel
Yazgeliştir Forumları VB.NET / C# Süper Moderatorü.
Microsoft Haber Grupları Profilim (VB.NET) -
11 Haziran 2011 Cumartesi 20:40
teşekkürler , this yoluyla problem çözüldü. lakin şimdide comboxtaki seçimi değiştirdiğimde sonradan eklediğim button hala kalıyor aynı yerinde ?
this.tabPage1.Controls.Add(addpositionbutton);
asıl kod ( else döngüsü denedim yinede aynı yerinde kalıyor )
private void cmbPstBox_SelectedIndexChanged(object sender, EventArgs e)
{
Button addpositionbutton = new Button();
string selectedcmbPstBox = cmbPstBox.SelectedItem.ToString();
if (selectedcmbPstBox == "Doctor")
{
addpositionbutton.Size = new Size(90, 23);
addpositionbutton.Text = "Add position";
addpositionbutton.Location = new Point(cmbPstBox.Width + addpositionbutton.Size.Width + 50,
cmbPstBox.Location.Y);
addpositionbutton.Click += new EventHandler(myButton_Click);
this.tabPage1.Controls.Add(addpositionbutton);
}
else
{
//this.tabPage1.Controls.Remove(addpositionbutton);
addpositionbutton.Visible = false;
}
}http://i55.tinypic.com/250tund.png bu ekran görüntürü, burada doktor kısmını seçince ekrana geliyor. fakat nedense doktoru seçtikten sonra comboboztan başka bir öğe seçtiğimde hala kalıyor sonradan eklediğim buton
http://i56.tinypic.com/avhttg.png
ikinci resimde ise doktor kısmndan sonra başka bir seçenek seçmeme rağmen hala button orda :S
-
11 Haziran 2011 Cumartesi 20:53Moderatör
>>ikinci resimde ise doktor kısmndan sonra başka bir seçenek seçmeme rağmen hala button orda :S
Normal. Çünkü önceden doktor seçilince butonu eklediniz. Başka bir seçim olduğunda butonu kaldırmak için controls.remove ile butonu kaldırın.
//Revize full kod: (Namespace'i değiştiriniz (WindowsApplication1)).
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace WindowsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
myButton.Click += new EventHandler(myButton_Click);
this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.comboBox1_SelectedIndexChanged);
}
Button myButton = new Button();
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
string selectedcmbox = comboBox1.SelectedItem.ToString();
if (selectedcmbox.ToString() == "Doctor")
{
//Makul bir buton boyutu belirt
myButton.Size = new Size(75, 23);
myButton.Text = "Bu bir düğme";
myButton.Location = new Point(comboBox1.Width + myButton.Size.Width, comboBox1.Location.Y);
this.Controls.Add(myButton);
}
else
{
this.Controls.Remove(myButton);
}
}
void myButton_Click(object sender, EventArgs e)
{
MessageBox.Show("Buton tıklandı!");
}
}
}
..doctor seçildiğinde buton eklenir, sonrasında doctor dışında bir seçim yapıldığında buton kalkar. Örnekte bir önceki örneğimde olduğu gibi form üzerine tabpage kullanmadan dinamik ekleme/kaldırma hususunu belirtmeye çalıştım. Siz kendinize göre TabPage formunda gerekli uyumlaştırmayı yine this.tabPage1.Controls.Add ve this.tabPage1.Controls.Remove ile yapabilirsiniz.
İyi çalışmalar.
Best regards, Saygılarımla, Onur Güzel
Yazgeliştir Forumları VB.NET / C# Süper Moderatorü.
Microsoft Haber Grupları Profilim (VB.NET)- Yanıt Olarak İşaretleyen Onur GüzelModerator 12 Haziran 2011 Pazar 08:33
-
11 Haziran 2011 Cumartesi 21:05
çok teşekkür ederim :)
çalıştı
public partial class PerRecFrm : Form
{
public PerRecFrm()
{
InitializeComponent();
addpositionbutton.Click += new EventHandler(myButton_Click);
this.cmbPstBox.SelectedIndexChanged += new System.EventHandler(this.cmbPstBox_SelectedIndexChanged);
}
Button addpositionbutton = new Button();
private void cmbPstBox_SelectedIndexChanged(object sender, EventArgs e)
{
string selectedcmbPstBox = cmbPstBox.SelectedItem.ToString();
if (selectedcmbPstBox.ToString() == "Doctor")
{
addpositionbutton.Size = new Size(90, 23);
addpositionbutton.Text = "Add Specialty";
addpositionbutton.Location = new Point(cmbPstBox.Width + addpositionbutton.Size.Width + 50,
cmbPstBox.Location.Y);
this.tabPage1.Controls.Add(addpositionbutton);
}
else
{
this.tabPage1.Controls.Remove(addpositionbutton);
//addpositionbutton.Visible = false;
}
}
void myButton_Click(object sender, EventArgs e)
{
MessageBox.Show("Buton tıklandı!");
}
private void button1_Click(object sender, EventArgs e)
{
this.Close();
}
private void button2_Click(object sender, EventArgs e)
{
Form addpositionform = new Form();
addpositionform.Size = new Size(300, 200);
addpositionform.Show();
}
}birinin işine yararsa diye paylşıyorum ...
-
12 Haziran 2011 Pazar 08:33Moderatör
Geribildirimiz için teşekkürler. Bu durumda yanıtın uygunluğu ve diğer kullanıcıların daha çabuk erişimi için işaretliyorum.
İyi çalışmalar.
Best regards, Saygılarımla, Onur Güzel
Yazgeliştir Forumları VB.NET / C# Süper Moderatorü.
Microsoft Haber Grupları Profilim (VB.NET)