نمایش نتایج 1 تا 21 از 21

نام تاپیک: نمایش 2 ستون در ComboBox

  1. #1
    کاربر دائمی آواتار salargham
    تاریخ عضویت
    شهریور 1390
    محل زندگی
    افجان
    سن
    33
    پست
    143

    نمایش 2 ستون در ComboBox

    با سلام
    چطور میتونم بجای قرار دادن 1 ستون از جدول بانک،2 ستون از آن رو در یک کامبو باکس نمایش بدم.و همچنین وقتی که یک سطر انتخاب شد وقتی که در بانک ذخیره کردیم.کد آن ذخیره شود.


    آخرین ویرایش به وسیله salargham : چهارشنبه 16 اسفند 1391 در 07:11 صبح

  2. #2
    کاربر دائمی
    تاریخ عضویت
    تیر 1389
    محل زندگی
    به جبر روزگار تهران هستم.
    پست
    2,718

    نقل قول: نمایش 2 ستون در ComboBox

    سلام.
    در دستور sql ای که مینویسید اون دو فیلد رو با هم جمع بزنید.
    select FirstName + ' ' + LastName from TblPerson

    حالا راحت میتونید همزمان نام و نام خانوادگی رو درون کمبو نمایش بدید.
    موفق باشید.

  3. #3
    کاربر دائمی آواتار salargham
    تاریخ عضویت
    شهریور 1390
    محل زندگی
    افجان
    سن
    33
    پست
    143

    نقل قول: نمایش 2 ستون در ComboBox

    ممنونم
    ولی به این صورت نمی خوام باشه.دقیقا مثل تصویر بالا باشه.

  4. #4
    کاربر دائمی
    تاریخ عضویت
    تیر 1389
    محل زندگی
    به جبر روزگار تهران هستم.
    پست
    2,718

    نقل قول: نمایش 2 ستون در ComboBox

    فکر نمیکنم چیزی که شما میخوای رو بشه با یک کمبو پیاده سازی کرد. معمولا متن رو نمایش میدن (displaymember) و کد رو در پشت پرده (valuemember ) نگه میدارن. موقع ذخیره هم،ارزش هر آیتم انتخاب شده (همون کد قسمت) رو با گزینه selectedvalue بدست میارن.

  5. #5

    نقل قول: نمایش 2 ستون در ComboBox

    خیلی راحت
    از کامپوننت های جانوس استفاده کن
    گرید را بنداز تو کمبو

  6. #6
    کاربر دائمی آواتار salargham
    تاریخ عضویت
    شهریور 1390
    محل زندگی
    افجان
    سن
    33
    پست
    143

    نقل قول: نمایش 2 ستون در ComboBox

    ممنونم
    میشه یه نمونه سورس بذارید

  7. #7
    کاربر دائمی آواتار khokhan
    تاریخ عضویت
    دی 1388
    محل زندگی
    اسکو
    پست
    2,176

    نقل قول: نمایش 2 ستون در ComboBox

    درود بر شما

    این نمونه که می گذارم دقیقا چیزیه که شما می خواین
    از هیچ کامپوننتی هم استفاده نشده

    اگه خوشتون اومد سلامتی همه دوستان لبخد بزنید
    فایل های ضمیمه فایل های ضمیمه

  8. #8
    کاربر دائمی آواتار salargham
    تاریخ عضویت
    شهریور 1390
    محل زندگی
    افجان
    سن
    33
    پست
    143

    نقل قول: نمایش 2 ستون در ComboBox

    تشکر
    ولی برای String ها چرا جواب نمیده

  9. #9
    کاربر تازه وارد آواتار rasoul babadi
    تاریخ عضویت
    فروردین 1392
    محل زندگی
    تهران
    پست
    30

    Thumbs up نقل قول: نمایش 2 ستون در ComboBox

    سلام به دوستان عزیز منم این مشکل رو دارم
    من دارم یه برنامه می نویسم البته با استفاده از Stored Procedures های sql server 2005
    لطفا اگر امکان داره دقیقا من فقط می خوام کمبو باکس متن نام و نام خانوادگی رو نمایش بده و کد او رکورد رو هم دخیره کنه البته کد زیر رو نوشتم ولی فقط نام خانوادگی رو نشون می ده.
    به تصویر زیر نگاه کن

    ضمیمه 124213
    {
    // Baray por kardan combo box as jadval person
    SqlDataAdapter da = newSqlDataAdapter("SelectAllperson", con);
    da.SelectCommand.CommandType =
    CommandType.StoredProcedure;
    DataTable dt = newDataTable();
    da.Fill(dt);
    cmbPerson.DataSource = dt;
    cmbPerson.DisplayMember =
    "LastName" ;
    cmbPerson.ValueMember =
    "id";
    FillGrid();
    }
    آخرین ویرایش به وسیله rasoul babadi : یک شنبه 13 مهر 1393 در 09:14 صبح

  10. #10
    کاربر دائمی
    تاریخ عضویت
    دی 1383
    محل زندگی
    اصفهان
    پست
    1,436

    نقل قول: نمایش 2 ستون در ComboBox

    یا باید از کامپوننت های آماده استفاده کنید، یا از رویداد Format (برای نمایش متن دلخواه در هر آیتم) یا از رویداد DrawItem (برای رسم تصویر دلخواه به ازای هر آیتم.
    برای روش آخر یکی نمونه قبلا گذاشته بودم جستجو کنید.
    combobox.png

  11. #11
    کاربر دائمی آواتار mohammad5530
    تاریخ عضویت
    مرداد 1391
    محل زندگی
    اهواز
    پست
    212

    نقل قول: نمایش 2 ستون در ComboBox

    از کامپوننت استفاده کنید . به هر شکلی که بخاید میتونید تغییر بدید

  12. #12
    کاربر تازه وارد آواتار rasoul babadi
    تاریخ عضویت
    فروردین 1392
    محل زندگی
    تهران
    پست
    30

    نقل قول: نمایش 2 ستون در ComboBox

    متوجه نشدم میشه برام توضیح بدید البته اگر امکان داشته باشه. آخه من فایل های پیوسته که در پست های بالایی بود گرفتم اما درست نشد.
    اطلاعات افرادی که در بانک کارمند ذخیره کردخ کدش درست عمل می کنه و نام خانوادگی رو توی کمبو باکس نمایش میده اما اگر توی جدول من چند نام خانوادگی مشترک داشته باشم در انتخاب کارمند مورد نظرم به مشکل بر می خورم برای همین می خواستم که نام و نام خانوادگی کارمند در کمبو باکس مشخص باشه.

  13. #13
    کاربر دائمی آواتار khokhan
    تاریخ عضویت
    دی 1388
    محل زندگی
    اسکو
    پست
    2,176

    نقل قول: نمایش 2 ستون در ComboBox

    نقل قول نوشته شده توسط rasoul babadi مشاهده تاپیک
    متوجه نشدم میشه برام توضیح بدید البته اگر امکان داشته باشه. آخه من فایل های پیوسته که در پست های بالایی بود گرفتم اما درست نشد.
    اطلاعات افرادی که در بانک کارمند ذخیره کردخ کدش درست عمل می کنه و نام خانوادگی رو توی کمبو باکس نمایش میده اما اگر توی جدول من چند نام خانوادگی مشترک داشته باشم در انتخاب کارمند مورد نظرم به مشکل بر می خورم برای همین می خواستم که نام و نام خانوادگی کارمند در کمبو باکس مشخص باشه.
    Untitled.jpg



    عزیز !!! کاری نداره یه کمبو باکس سفارشی درون یه کلاس درست کن به شرح ذیل .... بعد مثل همه کمبو باکس ها پرش کن :


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.ComponentModel;
    using System.Globalization;
    using System.Drawing;

    namespace Dr_bodagi2
    {
    public class WishWish : ComboBox
    {
    public WishWish()
    {
    DrawMode = DrawMode.OwnerDrawVariable;
    }

    public new DrawMode DrawMode
    {
    get
    {
    return base.DrawMode;
    }
    set
    {
    if (value != DrawMode.OwnerDrawVariable)
    {
    throw new NotSupportedException("نیاز به ساختار اختصاصی می باشد ");
    }
    base.DrawMode = value;
    }
    }

    public new ComboBoxStyle DropDownStyle
    {
    get
    {
    return base.DropDownStyle;
    }
    set
    {
    if (value == ComboBoxStyle.Simple)
    {
    throw new NotSupportedException("این شیوه پشتیبانی نمی شود");
    }
    base.DropDownStyle = value;
    }
    }

    protected override void OnDataSourceChanged(EventArgs e)
    {
    base.OnDataSourceChanged(e);

    InitializeColumns();
    }

    protected override void OnValueMemberChanged(EventArgs e)
    {
    base.OnValueMemberChanged(e);

    InitializeValueMemberColumn();
    }

    protected override void OnDropDown(EventArgs e)
    {
    base.OnDropDown(e);
    this.DropDownWidth = (int)CalculateTotalWidth();
    }

    const int columnPadding = 5;
    private float[] columnWidths = new float[0];
    private String[] columnNames = new String[0];
    private int valueMemberColumnIndex = 0;

    private void InitializeColumns()
    {
    PropertyDescriptorCollection propertyDescriptorCollection = DataManager.GetItemProperties();

    columnWidths = new float[propertyDescriptorCollection.Count];
    columnNames = new String[propertyDescriptorCollection.Count];

    for (int colIndex = 0; colIndex < propertyDescriptorCollection.Count; colIndex++)
    {
    String name = propertyDescriptorCollection[colIndex].Name;
    columnNames[colIndex] = name;
    }
    }

    private void InitializeValueMemberColumn()
    {
    int colIndex = 0;
    foreach (String columnName in columnNames)
    {
    if (String.Compare(columnName, ValueMember, true, CultureInfo.CurrentUICulture) == 0)
    {
    valueMemberColumnIndex = colIndex;
    break;
    }
    colIndex++;
    }
    }

    private float CalculateTotalWidth()
    {
    float totWidth = 0;
    foreach (int width in columnWidths)
    {
    totWidth += (width + columnPadding);
    }
    return totWidth + SystemInformation.VerticalScrollBarWidth;
    }

    protected override void OnMeasureItem(MeasureItemEventArgs e)
    {
    base.OnMeasureItem(e);

    if (DesignMode)
    return;

    for (int colIndex = 0; colIndex < columnNames.Length; colIndex++)
    {
    string item = Convert.ToString(FilterItemOnProperty(Items[e.Index], columnNames[colIndex]));
    SizeF sizeF = e.Graphics.MeasureString(item, Font);
    columnWidths[colIndex] = Math.Max(columnWidths[colIndex], sizeF.Width);
    }

    float totWidth = CalculateTotalWidth();

    e.ItemWidth = (int)totWidth;
    }

    protected override void OnDrawItem(DrawItemEventArgs e)
    {
    base.OnDrawItem(e);

    if (DesignMode)
    return;

    e.DrawBackground();

    Rectangle boundsRect = e.Bounds;
    int lastRight = 0;


    //Shakir
    //using (Pen linePen = new Pen(SystemColors.GrayText))
    using (Pen linePen = new Pen(Color.Black))
    {
    using (SolidBrush brush = new SolidBrush(e.ForeColor))
    //using (SolidBrush brush = new SolidBrush(BackColor))
    {
    if (columnNames.Length == 0 && e.Index >= 0)
    {
    e.Graphics.DrawString(Convert.ToString(Items[e.Index]), Font, brush, boundsRect);
    }
    else
    {
    for (int colIndex = 0; colIndex < columnNames.Length; colIndex++)
    {
    string item = Convert.ToString(FilterItemOnProperty(Items[e.Index], columnNames[colIndex]));

    boundsRect.X = lastRight;
    boundsRect.Width = (int)columnWidths[colIndex] + columnPadding;
    lastRight = boundsRect.Right;

    if (colIndex == valueMemberColumnIndex)
    {
    using (Font boldFont = new Font(Font, FontStyle.Bold))
    {
    e.Graphics.DrawString(item, boldFont, brush, boundsRect);
    }
    }
    else
    {
    e.Graphics.DrawString(item, Font, brush, boundsRect);
    }

    if (colIndex < columnNames.Length - 1)
    {
    e.Graphics.DrawLine(linePen, boundsRect.Right, boundsRect.Top, boundsRect.Right, boundsRect.Bottom);
    }
    }
    }
    }
    }

    e.DrawFocusRectangle();

    }
    }

    }




    این هم اختصاص دیتا تیبل :

    private void Form1_Load(object sender, EventArgs e)
    {

    DataTable dtTest = new DataTable();
    dtTest.Columns.Add("ID", typeof(int));
    dtTest.Columns.Add("Name", typeof(string));
    dtTest.Columns.Add("L-Name", typeof(string));

    dtTest.Rows.Add(1, "فروغ ", "تهمتن زاده اصل تهرانی فر");
    dtTest.Rows.Add(2, "امیر ارسلان ", "نامدار");
    dtTest.Rows.Add(3, "بیژن ", "منیژهخواه اکبرآبادی ");
    dtTest.Rows.Add(4, "افشین ", "صبوحی پرور شترخواه");
    dtTest.Rows.Add(5, "ناهید", "سمندرپورقلندر افکن");


    wishWish1.DataSource = dtTest;
    wishWish1.DisplayMember = "Name";
    wishWish1.ValueMember = "ID";

    }

  14. #14
    کاربر دائمی آواتار دلتنگ اسمان
    تاریخ عضویت
    بهمن 1391
    محل زندگی
    دل یار
    سن
    35
    پست
    571

    نقل قول: نمایش 2 ستون در ComboBox

    با سلام
    من کدهای مهندس khokhan رو کپی کردم و اجرا کردم ولی خطا میده میشه لطفا دلیل خطا رو بگید. ظاهرا به رفرنس خطا میده:
    Untitled.jpg

  15. #15
    کاربر دائمی آواتار khokhan
    تاریخ عضویت
    دی 1388
    محل زندگی
    اسکو
    پست
    2,176

    نقل قول: نمایش 2 ستون در ComboBox

    خطا میده میشه لطفا دلیل خطا رو بگید. ظاهرا به رفرنس خطا میده:
    شاید .....................
    فایل های ضمیمه فایل های ضمیمه

  16. #16
    کاربر تازه وارد آواتار rasoul babadi
    تاریخ عضویت
    فروردین 1392
    محل زندگی
    تهران
    پست
    30

    نقل قول: نمایش 2 ستون در ComboBox

    سلام دوست عزیز
    خوب این طور که من متوجه شدم باید اول اون کد بالایی رو بنویسم و یک کمبوباکس بسازم *** بعد اطلاعاتم از بانک اسکیوال فراخوانی کنم ***. من اطلاعاتم رو به صورت زیر فراخوانی کردم هر چند که قبلا کدش رو گذاشتم . کجای این کد باید دو ستون رو فراخوانی کنم آخه شما تو کد اختصاص دیتا تیبل خودتون جدول رو پر کردین اما من می خوام خودش اتوماتیک پر بشه زمانی که اطلاعات کارمند رو در فرم دیگری ثبت می کنم نام و نام خانوادگیش توی این کمبو نمایش داده بشه.
    نمیشه با دستور اسکیو ال یه select بزنم با and دوتا ستون رو فراخوانی کنم.

    ضمیمه 124449

  17. #17
    کاربر دائمی آواتار دلتنگ اسمان
    تاریخ عضویت
    بهمن 1391
    محل زندگی
    دل یار
    سن
    35
    پست
    571

    نقل قول: نمایش 2 ستون در ComboBox

    جناب khokhan ممنون از پاسختون.
    اول اینکه توی رفرنسها Microsoft.Csharp برای من علامت تعجب داره. یعنی مشکل داره. این dll رو از کجا میشه دانلود کرد؟
    و دیگه اینکه نام کلاس شما WishWish هستش ولی در لود فرم WishWish1 استفاده شده بدون نمونه سازی! . برام جالبه که بدونم این WishWish1 از کجا اومده؟
    سیستم من vs2008 هستش.

  18. #18
    کاربر تازه وارد آواتار rasoul babadi
    تاریخ عضویت
    فروردین 1392
    محل زندگی
    تهران
    پست
    30

    نقل قول: نمایش 2 ستون در ComboBox

    سلام دادش راست میگه من این کد توی برنامم کپی کردم همش بهم خورد اکثرا دستورات رو ازشون خطا می گرفت من این ویش ویش شما رو کجا باید بزارم
    این کارو کردم از آدرس زیر یه کمپانت کلاس ساختم کدرو اونجا کپی کردم اما....
    add new item - Componet Class

  19. #19
    کاربر دائمی آواتار khokhan
    تاریخ عضویت
    دی 1388
    محل زندگی
    اسکو
    پست
    2,176

    نقل قول: نمایش 2 ستون در ComboBox

    نقل قول نوشته شده توسط rasoul babadi مشاهده تاپیک
    سلام دادش راست میگه من این کد توی برنامم کپی کردم همش بهم خورد اکثرا دستورات رو ازشون خطا می گرفت من این ویش ویش شما رو کجا باید بزارم
    این کارو کردم از آدرس زیر یه کمپانت کلاس ساختم کدرو اونجا کپی کردم اما....
    add new item - Componet Class
    قابل توچه مدیران محترم ...خیلی سعی کردم نمونه آپلود نکنم می بینین که نمی شه ...... بعدا شاکی نشین ....

    دوست خوبم rasoul babadi یعد از اینکه کلاس کمبو باکس سفارشی رو ایجاد کردی یه بار پرو ژه رو rebuild solution کنین
    خواهید دید که یه کامپوننت به نام wishwish توی تول باکس (اولین گزینه ) ایجاد می شه
    از گوشش بگیر بنداز توی فرم

    اختصاص دیتا تیبل هم که دیگه فرقی نداره که از طریق کد نویسی ایجاد شده باشه یا از بانک فراخوانی شده باشه

    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();
    }
    public DataTable GetDataTable()
    {
    SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\Bodagi.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
    conn.Open();
    string query = "SELECT * FROM zirna ";

    SqlCommand cmd = new SqlCommand(query, conn);

    DataTable t1 = new DataTable();
    using (SqlDataAdapter a = new SqlDataAdapter(cmd))
    {
    a.Fill(t1);
    }
    return t1;
    }
    private void Form1_Load(object sender, EventArgs e)
    {
    DataTable dt = GetDataTable();
    wishWish1.DataSource = dt;
    wishWish1.DisplayMember = "f_name";
    wishWish1.ValueMember = "ID";
    }
    فایل های ضمیمه فایل های ضمیمه

  20. #20

    نقل قول: نمایش 2 ستون در ComboBox

    نقل قول نوشته شده توسط khokhan مشاهده تاپیک
    قابل توچه مدیران محترم ...خیلی سعی کردم نمونه آپلود نکنم می بینین که نمی شه ...... بعدا شاکی نشین ....

    دوست خوبم rasoul babadi یعد از اینکه کلاس کمبو باکس سفارشی رو ایجاد کردی یه بار پرو ژه رو rebuild solution کنین
    خواهید دید که یه کامپوننت به نام wishwish توی تول باکس (اولین گزینه ) ایجاد می شه
    از گوشش بگیر بنداز توی فرم

    اختصاص دیتا تیبل هم که دیگه فرقی نداره که از طریق کد نویسی ایجاد شده باشه یا از بانک فراخوانی شده باشه

    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();
    }
    public DataTable GetDataTable()
    {
    SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\Bodagi.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
    conn.Open();
    string query = "SELECT * FROM zirna ";

    SqlCommand cmd = new SqlCommand(query, conn);

    DataTable t1 = new DataTable();
    using (SqlDataAdapter a = new SqlDataAdapter(cmd))
    {
    a.Fill(t1);
    }
    return t1;
    }
    private void Form1_Load(object sender, EventArgs e)
    {
    DataTable dt = GetDataTable();
    wishWish1.DataSource = dt;
    wishWish1.DisplayMember = "f_name";
    wishWish1.ValueMember = "ID";
    }
    اینو میشه dllشو بذاری؟

  21. #21
    کاربر دائمی آواتار prans_tork
    تاریخ عضویت
    اردیبهشت 1391
    محل زندگی
    اردبیل
    پست
    117

    نقل قول: نمایش 2 ستون در ComboBox

    به نظر من بهترین راه اینه که به جای combobox یک Textbox بزارید که موقع کلید داخل اون یک gridview درست از ریزش نمایش داره بشه که با leave شدن موس از روی گرید، گرید دوباره محو بشه
    هم شکلش میشه دقیقا مثل کمبوباکس چندستونه و هم کنترل بسیار زیادی روش داری و میتونی هرکاری باهاش بگنی
    اگه به نظرت جالب بود میتونم بیشتر توضیح بدم و کد بزارم برات
    موفق باشی

تاپیک های مشابه

  1. یک ستون بصورت ComboBox در DBGrid ، چگونه؟
    نوشته شده توسط mohamad6 در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 15
    آخرین پست: جمعه 23 بهمن 1388, 09:46 صبح
  2. سوال: نمایش font در combobox
    نوشته شده توسط IranVisual در بخش VB.NET
    پاسخ: 1
    آخرین پست: پنج شنبه 26 دی 1387, 17:06 عصر
  3. نمایش تصویر در combobox
    نوشته شده توسط zrahimic در بخش طراحی وب (Web Design)
    پاسخ: 3
    آخرین پست: پنج شنبه 11 بهمن 1386, 19:57 عصر
  4. نحوه نمایش فیلدها در Combobox
    نوشته شده توسط setare7sky در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 2
    آخرین پست: شنبه 29 اردیبهشت 1386, 15:22 عصر
  5. نمایش ستون مانده حساب
    نوشته شده توسط shahab_ss در بخش Access
    پاسخ: 4
    آخرین پست: چهارشنبه 02 اسفند 1385, 14:54 عصر

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •