PDA

View Full Version : Freeze Columns in Vb.Net



ahatamirad
شنبه 06 خرداد 1385, 16:05 عصر
با سلام
آیا کسی در Vb.Net تونسته روی DataGrid یک یا چند ستون را Freeze کنه؟
منظورم اینه که با Scroll کردن به چپ یا راست بشه یک یا چند ستون را ثابت نگه داشت.
اگه میشه لطفاً راهنمایی فرمایید.

masysh
شنبه 06 خرداد 1385, 16:21 عصر
datagrid1.columns(1).frozen=true
از این کد استفاده کن

ahatamirad
یک شنبه 07 خرداد 1385, 15:57 عصر
نه منظورم در برنامه های Windows Base است
ما در Vb.Net دستور زیر را در برنامه های Windows Base نداریم :
DataGrid1.Columns(1).Frozen=true
اصلاً Columns به عنوان خاصیتی مجزا تعریف نشده است.
ممکنه بیشتر توضیح بدین ؟
با تشکر

masysh
یک شنبه 07 خرداد 1385, 16:52 عصر
شرمنده با datagridview اشتباه گرفتم. شما هم اگه از 2005 استفاده می کنی بهتره از datagridview استفاده کنی که در شرایط مشابه امکانات بیشتری داره.
datagrid در 2003 هم فکر نمی کنم خاصیت freeze داشته باشه.

Microsoft.net
چهارشنبه 10 خرداد 1385, 12:46 عصر
فقط توی 2005 این امکان گذاشته شده (DataGridView)

hadi2345
چهارشنبه 10 خرداد 1385, 16:05 عصر
با سلام.
برا ی 2003 گرید جانوس این خاصیت رو داره . گرید Infragestic هم همینطور .
موفق باشید .

RezaJP
چهارشنبه 10 خرداد 1385, 21:28 عصر
توی 2003 اگر بخواین این کار رو انجام بدین باید یه دیتا گرید جدید درست کنید که از DataGrid مشتق شده باشه
بعد متد OnMouseMove رو Override کنید


Protected Overrides Sub OnMouseMove(ByVal e As System.Windows.Forms.MouseEventArgs)
Dim ht As HitTestInfo = Me.HitTest(e.X, e.Y)
If blnAllowColResize And blnAllowRowResize Then
MyBase.OnMouseMove(e)
ElseIf blnAllowColResize And (Not blnAllowRowResize) Then
If Not ht.Type = DataGrid.HitTestType.RowResize Then MyBase.OnMouseMove(e)
ElseIf blnAllowRowResize And (Not blnAllowColResize) Then
If Not blnAllowColResize Then MyBase.OnMouseMove(e)
Else
If Not (ht.Type = DataGrid.HitTestType.ColumnResize Or ht.Type = DataGrid.HitTestType.RowResize) Then
MyBase.OnMouseMove(e)
End If
End If
End Sub

blnAllowColResize و blnAllowRowResize تعیین می کنند که بشه اندازه ردیف یا ستون رو تغییر داد یا خیر

Microsoft.net
پنج شنبه 11 خرداد 1385, 23:24 عصر
استفاده از توابع غیر پلت فرم دات نت و وابسته کردن برنامه به کامپوننتهایی مثل جانوس و ... اشتباه محض در طراحی و توسعه سیستمهاست . بخش R&D مایکروسافت در سال 2004 طی آماری اعلام کرد وابستگی بطور میانگین بین 8% تا 28% پروسه تولید و بطور میانگین بین 50% تا 100% پروسه پشتیبانی رو با مشکل مواجه میکنه

RezaJP
پنج شنبه 11 خرداد 1385, 23:28 عصر
من هم اعتقادی به استفاده از کنترل های آماده ندارم

hadi2345
جمعه 12 خرداد 1385, 06:49 صبح
استفاده از توابع غیر پلت فرم دات نت و وابسته کردن برنامه به کامپوننتهایی مثل جانوس و ... اشتباه محض در طراحی و توسعه سیستمهاست . بخش R&D مایکروسافت در سال 2004 طی آماری اعلام کرد وابستگی بطور میانگین بین 8% تا 28% پروسه تولید و بطور میانگین بین 50% تا 100% پروسه پشتیبانی رو با مشکل مواجه میکنه

قبول دارم که استفاده از ابزارهای آماده اشتباه است ولی همین ابزارها خیلی وقت ها به داد برنامه نویس میرسن و اگه بخواد خودش اون کار رو بکنه مجبوره که کلی زمان تلف کنه !! متاسفانه یوزر هم که این چیز ها حالیش نیست و برنامه شو سریع میخواد حالا با کامپوننت های آماده باشه یا نه براش اهمیتی نداره .... همین جانوس فیلترینگ بسیار قدرتمندی داره و برای Table هایی که تعداد فیلدش زیاده کارایی خوبی داره ، در حالیکه اگه خود کاربر بخواد کد نویسی کنه باید 1 روز کامل وقت صرف کنه !! تازه اونم مثل جانوس در نمیاد ... منظور من از تعداد فیلد زیاد مثل 80 تا یا حتی بیشتر از اونه ....

موفق باشید .

Microsoft.net
جمعه 12 خرداد 1385, 20:49 عصر
ببین عزیزم اگه مساله تعداد فیلده که اشتباه در طراحی سیستم بوده نه گرید چرا که وجود 80 فیلد در یک یا دو جدول نشان دهنده عدم تسلط طراح در طراحی بانک اطلاعاتی است . ثانیا بنده به شخصه به مدت 3 سال در یک پروژه بزرگ MIS در مشهد کار می کردم . اونایی که سیستمهایی مثل حسابداری صنعتی (6 سطح + 1 سطح شناور) - انبار داری صنعتی (10 سطح متغییر طبقه کالا + اتصال به بارکد و باسکول و ...) + ... روش کار کردن می دونن که چقدر حسابداها حساسند و برنامه این چنینی چقدر پیچیده است ولی با همین DatagridView هر چی خواستند براشون درست کردیم به چه راحتی . حتی ثبت سند رو خود گرید با کلی امکانات یعنی کاربر رو خود گرید اطلاعات رو وارد می کرد نه فرم جداگانه با کلی توابع کنترلی و محافظتی و هیچ وقت نشد خاسته باشیم کاری بکنیم با این Grid نتونیم درسته شاید امکاناتش ساده است ولی خیلی انعطاف پذیره

تمام این فیلترینگ که گفتی با استفاده از DataView به راحتی قابل پیاده سازی است . فقط باید برنامه نویس باشی تا بتونی درش بیاری !!! .

hadi2345
جمعه 12 خرداد 1385, 21:36 عصر
بله من هم همون اول قبول کردم و میدونم که میشه در آورد و شدنیه !!! منم نگفتم که نمیشه یا نمیتونم !!! ولی وقتی مساله زمان مطرح باشه و مخصوصا مسائل مالی ، باید از این جور ابزارها هم کمک گرفت ! در ضمن امکانات DataGridView بسیار کاملتر از DataGrid هست و مایکروسافت تو گرید آخرش مایه گذاشته و کار برنامه نویس ها رو راحت کرده ! مثلا اگه شما بخوایی بعضی از خاصیت های گرید جانوس رو با کدنویسی بر روی گرید معمولی دات نت داشته باشی ، باید کلی زمان صرف کنی !!! البته باز هم میگم که برای سیستمهای بزرگ استفاده از اون کاملا اشتباهه !!
در ضمن طراحی دیتابیس هم قبلا انجام شده بود و هیچ کاریش نمیشد کرد ! ( به خاطر همون مسائلی که گفتم ) . مسائل مالی بعضی وقت ها برنامه نویس رو کاملا ناامید میکنه و دلش نمیخواد که زیاد روش زمان صرف کنه .....

موفق باشید .