1) رکورد مورد نظر در DataGrid که به عنوان رکورد جاری برای ویرایش در نظر گرفته شده، باید به طریقی تشخیص داده بشه.
این عمل تشخیص، با استفاده از فیلد کلید رکورد انجام می پذیرد.
با استفاده از خاصیت DataKeyField، فیلد مورد نظر را به عنوان فیلد کلید برای رکوردهایی که در دیتا گرید نمایش داده می شوند مشخص می کنید و با استفاده از خاصیت DataKeys، رکورد جاری را تشخیص می دهید.
Dim intID As Int32 = myDataGrid.DataKeys( e.Item.ItemIndex )
در دستور فوق، متغیر intID محتوی مقدار فیلد کلید رکورد در حالت ویرایش است که با گذاشتن این مقدار در جلوی شرط Where، تنها رکورد در حالت ویرایش آپدیت خواهد شد.
2) متن ها قابلیت پنهان شدن ندارند. پس اگر شما حتی طول یک فیلد را به "صفر" تنظیم کنید، باز هم ستون شما به اندازه ی طول بیشترین آیتم موجود در ستون، کش خواهد آمد.
البته می توانید قابلیت Wrap را به متن های موجود در سلول ها اضافه کنید که باعث می شود کلمات، در صورتی که از اندازه ی تعیین شده برای ستون بیشتر بودند، به سطر بعد انتقال پیدا کنند.
تعیین طول ستون در دیتا گرید به شکل زیر است:
DataGrid1.Items(0).Cells(0).Width = New Unit(100, UnitType.Pixel)
فراموش نکنید که دستور فوق "حتما" باید بعد از فراخوانی متد DataBind کنترل دیتاگرید استفاده شود چون قبل از Binding، رکوردی در دیتاگرید وجود ندارد که قصد انتساب مقدار به ستون آن را داشته باشیم.
3) احتمالا به شکل ساده (نسخه های پیشین VS) مقداردهی می کنید.
سینتکس صحیح به شکل زیر است:
TextBox1.Width = New Unit(100, UnitType.Pixel)
موفق باشید.