• Web sitemizin içeriğine ve tüm hizmetlerimize erişim sağlamak için Web sitemize kayıt olmalı ya da giriş yapmalısınız. Web sitemize üye olmak tamamen ücretsizdir.
  • Sohbetokey.com ile canlı okey oynamaya ne dersin? Hem sohbet et, hem mobil okey oyna!
  • Soru mu? Sorun mu? ''Bir Sorum Var?'' sistemimiz aktiftir. Paylaşın beraber çözüm üretelim.

C Sharp Uygulamalar Combobox Genişliğini Seçilen Elamanın Kelime Uzunluğuna Göre Ayarlama

Üyelik Tarihi
7 Ocak 2015
Konular
4,091
Mesajlar
4,274
MFC Puanı
40
Kod:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace C_Sharp_Form_ComboBox_Genislik_Ayarlama
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private **** comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            //Burada combobox genişliği seçilen elemana göre değiştiriliyor

            comboBox1.Width = comboBoxGenislik(comboBox1, comboBox1.SelectedIndex);
        }

        private **** comboBox2_SelectedIndexChanged(object sender, EventArgs e)
        {
            //Burada combobox genişliği seçilen elemana göre değiştiriliyor

            comboBox2.Width = comboBoxGenislik(comboBox2, comboBox2.SelectedIndex);
        }

        //Bu metot combobox genişliğinin seçilen elemana göre hesaplıyor
        //ve bu değeri geri döndürüyor

        private int comboBoxGenislik(ComboBox comboBox, int indeks)
        {
            int uzunluk = 0;
            Label etiket = new Label();
            etiket.Text = comboBox.Items[indeks].ToString();
            uzunluk = etiket.PreferredWidth;
            etiket.Dispose();
            return uzunluk + 20;//20 değeri combobox okunun genişliği
        }

        private **** Form1_Load(object sender, EventArgs e)
        {
            comboBoxDoldur();

            //burada dropdown genişliği ayarlanıyor.
            //dropdown genişliği en uzun elemana göre ayarlanıyor

            comboBox1.DropDownWidth = DropDownGenislik(comboBox1);
        }

        //burada dropdown da görünen elemanların uzunlukları  hesaplanıyor
        //en uzun elemanın genişliği geri döndürülüyor.

        private int DropDownGenislik(ComboBox comboBox)
        {
            int maksimumGenislik = 0;
            int uzunluk = 0;
            Label etiket = new Label();

            foreach (var eleman in comboBox.Items)
            {
                etiket.Text = eleman.ToString();
                uzunluk = etiket.PreferredWidth;
                if (uzunluk > maksimumGenislik)
                    maksimumGenislik = uzunluk;
            }

            etiket.Dispose();
            return maksimumGenislik;
        }

        //comboBox rastgele doldurma 

        private **** comboBoxDoldur()
        {
            comboBox1.Items.Add("Birinci eleman genişlik uzun");
            comboBox1.Items.Add("İkinci eleman");
            comboBox1.Items.Add("Kısa");
            comboBox1.Items.Add("Rasgele eleman");
            comboBox1.Items.Add("Bu etiket kısa");
            comboBox1.Items.Add("Combobox islemler");

            for (int i = 0; i < comboBox1.Items.Count; i++)
            {
                comboBox2.Items.Add(comboBox1.Items[i]);
            }
        }
    }
}
 
Üst