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

نام تاپیک: ماندن فوکوس بر روی سطر جاری datagridview بعد از رفرش یا آپدیت

  1. #1

    ماندن فوکوس بر روی سطر جاری datagridview بعد از رفرش یا آپدیت

    سلام .
    چطور میتونم بعد از اینکه دیتاگریدیو رو رفرش کردم یا بعد از آپدیت فوکوس رو رویه سطر جاری نگه دارم .
    چون در حال حاضر با هر بار آپدیت کردن سطر جاری ، فوکوس به رکورد اول منتقل میشه .
    با سپاس

  2. #2
    مدیر بخش آواتار ژیار رحیمی
    تاریخ عضویت
    مهر 1386
    محل زندگی
    تهران
    پست
    1,095

    نقل قول: ماندن فوکوس بر روی سطر جاری دیتاگریدویو بعد از رفرش یا آپدیت

    سلام
    میتونی از یک متغییر کمکی جهت نگهداشتن ایندکس سطر انتخابی استفاده کنی و بعد از آپدیت مجدد سطر مورد نظر را Select کنی

    int SelectedRow;


    private void DataGridView1_RowStateChanged(object sender, DataGridViewRowStateChangedEventArgs e)
    {
    if (e.StateChanged != DataGridViewElementStates.Selected) return;
    SelectedRow= dataGridView1.CurrentRow.Index;
    }


    private void DataGridView1_SelectionChanged(object sender, EventArgs e)
    {
    SelectedRow= dataGridView1.CurrentRow.Index;
    }


    //برای انتخاب مجدد سطر
    dataGridView1.Rows[SelectedRow].Selected = true;
    First,solve the problem then write the code

  3. #3

    نقل قول: ماندن فوکوس بر روی سطر جاری دیتاگریدویو بعد از رفرش یا آپدیت

    نقل قول نوشته شده توسط ژیار رحیمی مشاهده تاپیک
    سلام
    میتونی از یک متغییر کمکی جهت نگهداشتن ایندکس سطر انتخابی استفاده کنی و بعد از آپدیت مجدد سطر مورد نظر را Select کنی

    int SelectedRow;


    private void DataGridView1_RowStateChanged(object sender, DataGridViewRowStateChangedEventArgs e)
    {
    if (e.StateChanged != DataGridViewElementStates.Selected) return;
    SelectedRow= dataGridView1.CurrentRow.Index;
    }


    private void DataGridView1_SelectionChanged(object sender, EventArgs e)
    {
    SelectedRow= dataGridView1.CurrentRow.Index;
    }


    //برای انتخاب مجدد سطر
    dataGridView1.Rows[SelectedRow].Selected = true;


    متاسفانه این کد جواب نداد و دوباره میره سطر اول

  4. #4

    نقل قول: ماندن فوکوس بر روی سطر جاری دیتاگریدویو بعد از رفرش یا آپدیت

    بعد از اینکه من آپدیت رو انجام میدم یکبار متود آپدیتم رو صدا میزنم و اونجا SelectedRow من صفر میشه . بخاطر همین کد شما جواب نمیده .

  5. #5

    نقل قول: ماندن فوکوس بر روی سطر جاری datagridview بعد از رفرش یا آپدیت

    دو راه دارید،
    یکی همین کاری که کردید و دوباره اطلاعات را دریافت کنید اما قبل از دریافت مجدد بایست اندیس سطری که آپدیت میشه را بدست بیارید و بعد از دریافت اطلاعات و نمایش در دیتاگرید CurrentRow را به همان اندیس ست کنید.
    راه دیگر هم این هست که بعد از اینکه عمل آپدیت را انجام دادید، سطر مورد نظر از منبع داده را با اطلاعات مورد نظر به روزرسانی کنید. در این حالت دیگه نیاز به دریافت مجدد اطلاعات از دیتابیس نیست.
    آخرین ویرایش به وسیله Mahmoud.Afrad : شنبه 25 شهریور 1396 در 17:26 عصر

  6. #6
    مدیر بخش آواتار danialafshari
    تاریخ عضویت
    تیر 1387
    محل زندگی
    هر کجا هستم باشم آسمان مال من است
    پست
    2,909

    نقل قول: ماندن فوکوس بر روی سطر جاری datagridview بعد از رفرش یا آپدیت

    با سلام
    ابتدا خصوصیات دیتاگرید را به شکل زیر تغییر دهید:

    MultiSelect = false
    SelectionMode = FullRowSelect


    سپس کد زیر را را در باتن ثبت بنویسید

    private void btnUpdate_Click(object sender, EventArgs e)
    {
    int rowSelect = dataGridView1.CurrentRow.Index;


    //Update code is here
    //some code for update

    //refresh
    Form1_Load(null, null);


    //after update
    dataGridView1[0, rowSelect].Selected = true;
    }

    موفق باشید
    لطفاً از پرسیدن سوال در خصوصی خودداری کنید.
    قبل از ایجاد تاپیک، حتماً قوانین سایت را مطالعه فرمایید.
    قوانین پرسش های دانشجویی
    برای درست وارد شدن کد در قالب C#‎‎‎ سایت، ابتدا کد رو درون Notepad.exe کپی سپس از اونجا به سایت در قالب C#‎‎‎ منتفل کنید
    نرم افزار code manager دستیار برنامه نویسان جهت نگهداری کد ها

  7. #7

    نقل قول: ماندن فوکوس بر روی سطر جاری datagridview بعد از رفرش یا آپدیت

    نقل قول نوشته شده توسط danialafshari مشاهده تاپیک
    با سلام
    ابتدا خصوصیات دیتاگرید را به شکل زیر تغییر دهید:

    MultiSelect = false
    SelectionMode = FullRowSelect


    سپس کد زیر را را در باتن ثبت بنویسید

    private void btnUpdate_Click(object sender, EventArgs e)
    {
    int rowSelect = dataGridView1.CurrentRow.Index;


    //Update code is here
    //some code for update

    //refresh
    Form1_Load(null, null);


    //after update
    dataGridView1[0, rowSelect].Selected = true;
    }

    موفق باشید


    سپاس فراوان آقای افشاری .

    کد شما جواب داد .

  8. #8

    نقل قول: ماندن فوکوس بر روی سطر جاری datagridview بعد از رفرش یا آپدیت

    نقل قول نوشته شده توسط danialafshari مشاهده تاپیک
    با سلام
    ابتدا خصوصیات دیتاگرید را به شکل زیر تغییر دهید:

    MultiSelect = false
    SelectionMode = FullRowSelect


    سپس کد زیر را را در باتن ثبت بنویسید

    private void btnUpdate_Click(object sender, EventArgs e)
    {
    int rowSelect = dataGridView1.CurrentRow.Index;


    //Update code is here
    //some code for update

    //refresh
    Form1_Load(null, null);


    //after update
    dataGridView1[0, rowSelect].Selected = true;
    }

    موفق باشید

    سلام این مورد خیلی هم خوب کار میکنه در صورتی که کاربر روی ستون کلیک نکنه و ترتیب سطرها را تغییر نده . ولی
    حالا اگه کاربر روی گرید کلیک کنه و ترتیب رکورد ها جابجا شد بعد از آپدیت شدن دیتا و لود مجدد دیتا ها چون سورت دیتا تغییر میکنه ایندکس سطر انتخابی چون یک بار کلیک کرده تغییر میکنه و دیگه اون سطر انتخابی کاربر نیست برای حل این مورد دیگه خاصیت CurrentRow جوابگو نیست .
    برای حل این مورد چه راه حلی موجود هست؟

  9. #9
    مدیر بخش آواتار ژیار رحیمی
    تاریخ عضویت
    مهر 1386
    محل زندگی
    تهران
    پست
    1,095

    نقل قول: ماندن فوکوس بر روی سطر جاری datagridview بعد از رفرش یا آپدیت

    سلام
    در مورد این مشکل بهتره بجای CurrentRow دیتاگرید Id رکورد (انتخاب شده)رو نگه داری بعد از ویرایش یه جسنجو در دیتاگرید انجام بدی و سطری که Id رکورد ان برابر مقدار نگداری شده بود را در DataGrid سلکت کنی
    First,solve the problem then write the code

  10. #10

    نقل قول: ماندن فوکوس بر روی سطر جاری datagridview بعد از رفرش یا آپدیت

    دوستان من مجدد این پست رو آپ میکنم چون یه مشکلی پیش اومده واسم .
    من دقیقا بعد از اینکه آپدیت رو انجام دادم دوباره میام و کوئری که اطلاعات رو تویه گرید نشون میده رو فراخوانی میکنم . تا الان باهاش مشکلی نداشتم ولی از موقعی که اومدم و بر اساس یه ستون خاص Order By رو انجام دادم ، سطر مورد نظر انتخاب میشه ولی دوباره میاد و اول دیتاگرید رو نشون میشه .!!!!! (یعنی باس اسکرول کنم تا سطر انتخابی رو ببینم)
    چطور میتونم فوکوس دیتاگرید رو هم رویه اون سطر انتخابی بندازم .

  11. #11

    نقل قول: ماندن فوکوس بر روی سطر جاری datagridview بعد از رفرش یا آپدیت

    مشکل رو از طریق کد پایین حل کردم . ولی هنوز یه موردی داره : اونم اینه که اگه رویه یه ستونی جهت مرتب سازی کلیک کرده باشی بعد از آپدیت فوکوس رویه سطر جاری نمیمونه. این مورد رو چه باید کرد ؟




    int saveRow = 0;
    if (dataGridView1.Rows.Count > 0)
    saveRow = dataGridView1.FirstDisplayedCell.RowIndex;


    if (saveRow != 0 && saveRow < dataGridView1.Rows.Count)
    dataGridView1.FirstDisplayedScrollingRowIndex = saveRow;



    آخرین ویرایش به وسیله jafarpalideh : چهارشنبه 03 آبان 1396 در 14:43 عصر دلیل: اشتباه تایپی

  12. #12

    نقل قول: ماندن فوکوس بر روی سطر جاری datagridview بعد از رفرش یا آپدیت

    اینو من هم دنبالشم

    اگه کسی نمونه ای داره قرار بده

  13. #13
    کاربر دائمی آواتار patrick5053
    تاریخ عضویت
    مرداد 1390
    محل زندگی
    در دل #C
    سن
    36
    پست
    214

    نقل قول: ماندن فوکوس بر روی سطر جاری datagridview بعد از رفرش یا آپدیت

    privatevoidbtnUpdate_Click(objectsender, EventArgs e)        {
    int rowSelect = dataGridView1.CurrentRow.Index;


    //Update code is here
    //some code for update

    //refresh
    Form1_Load(null, null);


    //after update
    dataGridView1.CurrentCell = dataGridView1.Rows[rowSelect].Cells[1];
    }


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

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

  1. سوال: دیدن جزئیات رکورد در فرم دیگر با double click بر روی سطر Datagridview
    نوشته شده توسط malimohammadi در بخش C#‎‎
    پاسخ: 3
    آخرین پست: جمعه 25 تیر 1395, 19:38 عصر
  2. پاسخ: 7
    آخرین پست: پنج شنبه 10 اسفند 1391, 19:43 عصر
  3. فوكوس بر روي تكس باكس اول بعد از ثبت اطلاعات
    نوشته شده توسط jmfnima در بخش C#‎‎
    پاسخ: 8
    آخرین پست: شنبه 21 آبان 1390, 14:03 عصر
  4. سوال: عدم حرکت روی سطر های DATAGRIDVIEW ...
    نوشته شده توسط navid_vandi در بخش C#‎‎
    پاسخ: 4
    آخرین پست: سه شنبه 05 آذر 1387, 17:13 عصر
  5. پاسخ: 1
    آخرین پست: چهارشنبه 15 مرداد 1382, 21:01 عصر

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

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