نمایش نتایج: از شماره 1 تا 4 از مجموع 4
Like Tree4نفر پسندیدند
  • 2 ارسال توسط returnx
  • 2 ارسال توسط returnx

موضوع: تغییر رنگ یک ردیف خاص در dataGridView سی شارپ

  1. #1
    SUPERMODERATOR
    تاریخ عضویت
    2012 May
    ارسال ها
    430
    تشکر
    750
    تشکر شده 961 بار در 440 پست
    نوشته های وبلاگ
    4


    آيا اين پست براي شما سودمند بود؟ بله | خیر

    تغییر رنگ یک ردیف خاص در dataGridView سی شارپ

    سلام
    چطور میشه در سی شارپ رنگ یک ردیف خاص از dataGridView رو تغییر رنگ داد...
    مثلا یک ستون در dataGridView از نوع checkBox است و هر کدام که تیکش زده شد رنگ همون ردیف تغییر پیدا کنه..؟؟

    مثلا کد زیر ردیف رو تغییر رنگ میده ولی نمیدونم چطور تغییرش بدم تا ردیفی که تیک خورده رنگش تغییر کنه و نه اینکه مثل زیر فقط ردیف 2 رو تغییر بده..
    شرط if هم کار نمیکنه .. شرط رو باید چی بنویسم؟؟



    private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
    {

    if (column4.ThreeState == true)
    dataGridView1.Rows[2].DefaultCellStyle.BackColor = Color.Red;
    }


    .
    .

    موضوعات مشابه:
    ویرایش توسط Tishab : 20th February 2015 در ساعت 08:12 PM
    سه جمله برای کسب موفقیت: ..... 1. بیشتر از دیگران بدانید.....2. بیشتر از دیگران کار کنید......3. کمتر انتظار داشته باشید. ( ویلیام شکسپیر )

  2. #2
    Moderator
    تاریخ عضویت
    2012 November
    ارسال ها
    128
    تشکر
    28
    تشکر شده 173 بار در 77 پست


    آيا اين پست براي شما سودمند بود؟ بله | خیر
    میتونید به این شکل عمل کنید :
    رویداد CellContentClick :
            private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
    {
    dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit); //Allow Raise Cell Value Changed Event
    }

    و بعد در رویداد CellValueChanged از این کد استفاده کنید :
            private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
    {
    if (e.ColumnIndex != -1 && e.RowIndex != -1) //Handle Error Before Init
    {
    DataGridViewCell current_cell = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex]; //Get Current Cell
    if (current_cell.GetType() == typeof(DataGridViewCheckBoxCell)) //Check If Cell Type Is Checkbox
    {
    bool state = Convert.ToBoolean(current_cell.Value); //Check Checkbox state
    if (state)
    {
    dataGridView1.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.Red;
    }
    else
    {
    dataGridView1.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.Empty;
    }
    }
    }

    }


    ویرایش توسط returnx : 16th February 2015 در ساعت 06:09 PM
    Hossein و Tishab این را میپسندند

  3. #3
    SUPERMODERATOR
    تاریخ عضویت
    2012 May
    ارسال ها
    430
    تشکر
    750
    تشکر شده 961 بار در 440 پست
    نوشته های وبلاگ
    4


    آيا اين پست براي شما سودمند بود؟ بله | خیر
    ممنون... جواب داد.. جایی اینو پیدا نکرده بودم
    اگه میشه در مورد قطعه کد اولی یه توضیحی بدی ممنون میشم... مثلا درمورد comitedit و اینکه در چ مواردی باید اینو گذاشت و..... ؟؟

    نقل قول نوشته اصلی توسط returnx نمایش پست ها
    میتونید به این شکل عمل کنید :
    رویداد CellContentClick :
            private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
    {
    dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit); //Allow Raise Cell Value Changed Event
    }

    و بعد در رویداد CellValueChanged از این کد استفاده کنید :
            private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
    {
    if (e.ColumnIndex != -1 && e.RowIndex != -1) //Handle Error Before Init
    {
    DataGridViewCell current_cell = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex]; //Get Current Cell
    if (current_cell.GetType() == typeof(DataGridViewCheckBoxCell)) //Check If Cell Type Is Checkbox
    {
    bool state = Convert.ToBoolean(current_cell.Value); //Check Checkbox state
    if (state)
    {
    dataGridView1.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.Red;
    }
    else
    {
    dataGridView1.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.Empty;
    }
    }
    }

    }


    سه جمله برای کسب موفقیت: ..... 1. بیشتر از دیگران بدانید.....2. بیشتر از دیگران کار کنید......3. کمتر انتظار داشته باشید. ( ویلیام شکسپیر )

  4. #4
    Moderator
    تاریخ عضویت
    2012 November
    ارسال ها
    128
    تشکر
    28
    تشکر شده 173 بار در 77 پست


    آيا اين پست براي شما سودمند بود؟ بله | خیر
    در مورد کد رویداد CellContentClick باید بگم که به این دلیل اون خط را گذاشتم که بعد از کلیک شدن روی آن Cell خاص ، سریعا رویداد CellValueChanged صدا زده بشه تا ما سریعا بعد از کلیک کردن تغییرات را مشاهده کنیم ، به طور طبیعی قبل از اینکه رویداد CellValueChanged صدا زده بشه چند رویداد دیگه مثل چک کردن خطا اجرا میشه و شما برای اجرا شدن کد های رویداد CellValueChanged باید منتظر باشید تا focus از سلول خاص بره روی یک cell دیگه این باعث یک وقفه میشه که جداب نیست ، هرچند این کار ممکنه باعث بشه بعضی از خطا ها چک و گزارش نشند...

    Hossein و Tishab این را میپسندند

 

 

کاربران برچسب خورده در این موضوع

کلمات کلیدی این موضوع

علاقه مندی ها (Bookmarks)

علاقه مندی ها (Bookmarks)

مجوز های ارسال و ویرایش

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


Powered by vBulletin
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.6.0
Persian Language By Ustmb.ir
این انجمن کاملا مستقل بوده و هیچ ارتباطی با دانشگاه علوم و فنون مازندران و مسئولان آن ندارد..این انجمن و تمامی محتوای تولید شده در آن توسط دانشجویان فعلی و فارغ التحصیل ادوار گذشته این دانشگاه برای استفاده دانشجویان جدید این دانشگاه و جامعه دانشگاهی کشور فراهم شده است.لطفا برای اطلاعات بیشتر در رابطه با ماهیت انجمن با مدیریت انجمن ارتباط برقرار کنید
ساعت 09:20 AM بر حسب GMT +4 می باشد.