سلام دوستان چطوري بايد سطر اول گريد را read only كنم بطوري كه ويرايش و حذف روي اين سطر اعمال نشود.
كدي كه خودم نوشتم ولي جواب نداد
dataGridViewX1.Rows[0].ReadOnly = true;
سلام دوستان چطوري بايد سطر اول گريد را read only كنم بطوري كه ويرايش و حذف روي اين سطر اعمال نشود.
كدي كه خودم نوشتم ولي جواب نداد
dataGridViewX1.Rows[0].ReadOnly = true;
سلام.
دوست عزیز من کدتون رو امتحان کردم و برای جلوگیری از ویرایش جواب داد ولی برای حذف، در رویداد UserDeletingRow مربوط به DataGridView این کد رو بنویس:
if (e.Row.Index == 0)
e.Cancel = true;
اگرم برای edit از کد خودت جواب نگرفتی توی رویداد CellBeginEdit این کد رو بنویس:
if (e.Row.Index == 0)
e.Cancel = true;
بله تست كردم.
الان به VS دسترسي ندارم.
من چطور بايد اجراش كنم روي سيستم من به e.Row گير ميده
كد رو توي رويداد UserDeletingRow نوشتي؟
کد درسته
شاید توی UserDeletedRow نوشتید؟
بنده هم امتحان کردم ،جواب میده !
شما از GridView خاصی استفاده نمیکنید ؟
از گريد دات نت بار استفاده مي كنم UserDeletingRow يعني چي چيكار بايد بكنم
چرا به جایه اینکار که کاربر را گیج کنه ردیف اول را به شکل جدا که معلوم باشد برایه تغییر نیست نشان نمیدید؟
اینکه کاربر باید با امتحان به اینکه ردیف اول با بقیه ردیفها به یک جادویی فرق دارد وادار میشه کار یک برنامهنویس نیست.
باید صراحتاً اینکه چه خبره برایه کاربر مفهوم باشد.
دوست من لطف كردي جواب دادي
ولي من برنامه نويس قوي نيستم جرياني كه بخاطر آن اين سوال را پرسيدم از اين قراره :
من چند تكست باكس دارم و پس از اينكه همه آنها در يك گريد ويو نشان داده ميشه و يك كد آرشيو كه كليد اصلي منه كه با هر بار insert كردن يكي به آخرين آي دي اضافه مي كنم و در تكست باكس كد آرشيو مي ريزم.
حالا زماني كه ميخوام اطلاعات را حذف يا ويرايش كنم مجبورم روي گريد كليك كنم كه با اين كار سطر اول گريد (كه اطلاعات دارد)خالي نشون ميده (درحاليكه اطلاعات كد يك در اونجا هست) و كدجديدي كه ميخوام اضافه كنم در سطر اول قرار ميگيره و مقدار اون در ستون اول حالا مشكل خيلي خيلي اساسي من اينه كه سطر اول را نه مي تونم حذف كنم نه ويرايش چون كد جديد جاي اونو مي گيره .ميخوام كد صفر را وارد كنم كه بعنوان سطر اول قرار بگيره حالا اگر حالت بالاكه گفتم پيش اومد مسئله اي ايجاد نكنه
دوست من شايد از نحوه برنامه نويسي من ايراد بگيريد ولي خواهشا كمك كنييد
مثل همیشه ایراد به روش است، روش خوب و بد مال شما و یا من نیست.
همیشه هرکی میتونه روشش را عوض کنه، گفتن اینکه روش درست نیست ایراد به کار کسی نیست، فقط اینکه اشکالی وجود دارد به نظر آوردن است که از روشهایه بهتر استفاده کنند.به شما هیچ ایرادی نیست، فقط همینکه متوجه بشید و به دنبال روش درست برید هدف اصلی بود.
تنها چیزی که قوی بودن برنامه نویس را نشان میده این است که کار پیچیده را ساده میکنه و پیاده میکنه.
چیزی که توضیح دادید روشی است که برایه حل یک مسعله بخصوص استفاده میکنید.حالا وجود داتاگرید، تکست باکس و خرده ریزیها را فراموش کنید. به اصل موضوع توجه کنید، مشکل اصلی وابستگی منطق کار به به این است که در سطر اول گرید ویو چیه. اگر روش کار را یک جوری تغییر بدید که این وابستگی وجود نداشته باشد برنامه درگیر اینکه به سطر اول گرید ویو چی هست و یا نیست نمیرقصه.
نمایش و ویرایش دادهها را از روشی که ذخیرهشان میکنه سوا کنید (اسماً به این برنامهنویسیه لایهای گفته میشه).
در کوتاه مدت حتی اگر کارتان با ثابت کردن رو اول داتاگرید راه بیافته برایه دراز مدت حتماً به روشهایی که نمایش و منطق ذخیره کردن دادهها را به شکل لایهای پیاهد میکنند نگاه بندازید.
پاورقی: شما به اینکه جلویه پاک شدن و یا ویرایش شدن بگیرید احتیاج ندارید، میتونید به تمام روهایه داتا گرید کنترل داشته باشید، میتونید از همه روها اول کار یک کپی نگه دارید و یا اینکه با داتاسورسشان زمانی که تغییری سورت میگیره با خبر بشید، ولی اینها فقط پوشوندن ترک است و دیوار را باید هنوز از بنا صافش کرد.
حداقل برایه برایه شروع، یک مثال ساده است که فقط ایده را برسانه :
https://barnamenevis.org/showpo...7&postcount=32