نگهداری سطر جاری در گریدویو
با عرض سلام خدمت اساتید محترم
من یه مشکل با دیتاگریدویو تو سی شارپ دارم
یک سری اطلاعات تو گرید ویو دارم که با انتخاب هر سطر اطلاعاتش در یک سری تکست باکس نمایش داده میشه که تو تکست باکس ها امکان اصلاح اطلاعات را دارم فرض کنید سطر 3 از گرید را اصلاح میکنم بعد که گرید را رفرش میکنم سطر جاری تغییر میکنه و فوکوس روی سطر اول میره من میخوام رو همون سطر جاری یعنی سطر 3 بمونه میدونید باید چی کار کنم؟
نقل قول: نگهداری سطر جاری در گریدویو
قبل از اينكه بخواي توي تكست باكس بفرستيش ايندكس گريد رو بخون كه روي همون سطر جاري هستش بعد از عمليات بروز رساني ببرش روي همون ايندكس فكر كنم منظورمو فهميده باشي در نهايت اگر خواستي بگو برات كدش رو بزارم
نقل قول: نگهداری سطر جاری در گریدویو
برای این کار یه متغیر از نوع int در فذمتون ایجاد کنید و در رویداد SelectionChange گریدتون شماره سطر انتخاب شده رو در داخل این متغیر نگه داری کنید.
حالا بعد از اینکه ویرایش رو انجام دادین و گرید رو رفرش کردین کد زیر رو بنویسید :
GridContract.Rows[SelectedRow] = true;
موفق باشید
نقل قول: نگهداری سطر جاری در گریدویو
راه اصولی اینه که DataGridView و TextBox ها به یک DataSource با استفاده از BindingSource وصل باشند که دیگه نیازی به کد نویسی اضافه و رفرش کردن DataGridView نباشه و خو BindingSource این موضوع رو هندل کنه
نقل قول: نگهداری سطر جاری در گریدویو
نقل قول:
نوشته شده توسط
gwbasic
راه اصولی اینه که DataGridView و TextBox ها به یک DataSource با استفاده از BindingSource وصل باشند که دیگه نیازی به کد نویسی اضافه و رفرش کردن DataGridView نباشه و خو BindingSource این موضوع رو هندل کنه
اینکه دیتاگرید و تکست باکس وصل باشند درست. اما بعد از اینکه کاربر اطلاعات را ذخیره کرد. مگه نباید دوباره متدی که باعث پرکردن گرید میشه را فراخوانی کنیم؟ و طبعاً با فراخوانی آن متد دوباره سطراول select میشه مگر اینکه خودمون تو کد هندل کنیم
نقل قول: نگهداری سطر جاری در گریدویو
به روش کار با BindingSource توجه کنید با استفاده از این کنترل نیازی به Refresh ندارید
نقل قول: نگهداری سطر جاری در گریدویو
نقل قول:
نوشته شده توسط
f_pakzad
اینکه دیتاگرید و تکست باکس وصل باشند درست. اما بعد از اینکه کاربر اطلاعات را ذخیره کرد. مگه نباید دوباره متدی که باعث پرکردن گرید میشه را فراخوانی کنیم؟ و طبعاً با فراخوانی آن متد دوباره سطراول select میشه مگر اینکه خودمون تو کد هندل کنیم
نه نیازی به این کار نیست برای اطلاعت بیشتر به آموزش DataBinding که تو سایت گذاشتم مراجعه کنید. در ضمن لینک زیر هم اگه دنبال کنید می تونه کاملا جواب سوالتون رو بده
https://barnamenevis.org/showthread.p...ات-شخصی
نقل قول: نگهداری سطر جاری در گریدویو
نقل قول:
نوشته شده توسط
msdsbi
قبل از اينكه بخواي توي تكست باكس بفرستيش ايندكس گريد رو بخون كه روي همون سطر جاري هستش بعد از عمليات بروز رساني ببرش روي همون ايندكس فكر كنم منظورمو فهميده باشي در نهايت اگر خواستي بگو برات كدش رو بزارم
راستش این کار کردم datagridview1.currentrow.index اما این که چطور بتوانم سطر خاصی را به
گرید ویو بفرستم نشد اگه امکان داره بیشتر راهنمایی کنید ممنون
نقل قول: نگهداری سطر جاری در گریدویو
نقل قول:
نوشته شده توسط
troski
برای این کار یه متغیر از نوع int در فذمتون ایجاد کنید و در رویداد SelectionChange گریدتون شماره سطر انتخاب شده رو در داخل این متغیر نگه داری کنید.
حالا بعد از اینکه ویرایش رو انجام دادین و گرید رو رفرش کردین کد زیر رو بنویسید :
GridContract.Rows[SelectedRow] = true;
موفق باشید
سلام این دستور که خطا داره
نقل قول: نگهداری سطر جاری در گریدویو
نقل قول:
نوشته شده توسط
gwbasic
باشه حتما مطالعه میکنم اما اگر روشی غیر ازdatabindingمیدونید که کمکم کنه خیلی بهتره
نقل قول: نگهداری سطر جاری در گریدویو
نقل قول:
نوشته شده توسط
Leyla2011
باشه حتما مطالعه میکنم اما اگر روشی غیر ازdatabindingمیدونید که کمکم کنه خیلی بهتره
بحث Binding برای همین منظور بوجود اومده که کار با فرم ها رو ساده تر کنه بنابراین پیشنهاد می کنم قبل از هر کاری به مطالعه این مطلب بپردازین چون بهترین و ساده ترین روش هست
نقل قول: نگهداری سطر جاری در گریدویو
وقتی با بایندینگ قضیه اینقد راحت میشه خوب از همون استفاده کنید ، از همه نظر بهتره ولی به هر حال بعد از اینکه شماره ردیف رو نگهداری کردید ، بعد از refresh شدن دیتاگرید از کد زیر برای رفتن به همون سطر اقدام کنید :
dataGridView1.Rows[شماره سطر مورد نظر].Selected = true;
نقل قول: نگهداری سطر جاری در گریدویو
نقل قول:
نوشته شده توسط
seven7777777
وقتی با بایندینگ قضیه اینقد راحت میشه خوب از همون استفاده کنید ، از همه نظر بهتره ولی به هر حال بعد از اینکه شماره ردیف رو نگهداری کردید ، بعد از refresh شدن دیتاگرید از کد زیر برای رفتن به همون سطر اقدام کنید :
dataGridView1.Rows[شماره سطر مورد نظر].Selected = true;
سلام با این کار سطر highlight میشه آن علامت فلش سمت راست درheader Columnگرید روی سطر اول باقی میمونه؟ درست منظورتونو فهمیدم؟
نقل قول: نگهداری سطر جاری در گریدویو
نقل قول:
نوشته شده توسط
Leyla2011
سلام با این کار سطر highlight میشه آن علامت فلش سمت راست درheader Columnگرید روی سطر اول باقی میمونه؟ درست منظورتونو فهمیدم؟
dgv.CurrentCell = dgv[شماره سطر مورد نظر, نام ستون];
و در دیتاگرید خصوصیت selectionmod روی FullRowSelect باشد.
نقل قول: نگهداری سطر جاری در گریدویو
نقل قول:
نوشته شده توسط
f_pakzad
dgv.CurrentCell = dgv[شماره سطر مورد نظر, نام ستون];
و در دیتاگرید خصوصیت selectionmod روی FullRowSelect باشد.
مرسی f_pakzad دقیقا همینو میخواستم