احتمالا شما MSFlexGrid رو پیشنهاد می کنید . باید بگویم که VB.NET من این عنصر رو نداره .
منظور بنده استفاده از همان کنترل دیتا گرید بود .
شما ابتدا باید جدول را به طور دستی همراه با داده هایش ایجاده کرده و سپس درون یک دیتاست بریزید و سپس دیتاگرید را به دیتاست بایند کنید .
خوب ، جدولی که ما میخواهیم ایجاد کنیم شامل ستونهای زیر میباشد :
- نام
نام خانوادگی
شماره تلفن
نام پدر
مراحل کار را آغاز میکنیم :
- ابتدا یک کنترل Button و یک کنترل Datagrid به فرم اضافه نمایید .
- بر روی کنترل Button دوبار کلیک کرده تا وارد ریداد Click آن شوید .
1 - برای ایجاد یک جدول ابتدا میبایست شی ء DataTable را ایجاد نماییم . کد زیر را به رویدا کلیک دکمه اضافه نمایید :
Dim MyTable As New DataTable("Info")
در اینجا نام جدول ما "Info"میباشد .
2 - سپس نوبت به ایجاد فیلدهای جدول میرسد . این کار از طریق شی ء DataColumn صورت میپذیرد .
توجه داشته باشید که هنگام ایجاد یک فیلد شما باید اولا یک نام برای آن در نظر بگیرید و ثانیا نوع آن فیلد را معین نمایید . و بعد از اینکه فیلد مورد نظر خود را ایجاد کردیم باید آن را به کالکشن فیلدهای جدول خود اضافه کنیم . پس کد زیر را به رویداد کلیک دکمه اضافه نمایید :
'در اینجا یک فیلد به نام "نام" ایجاد میکنیم .
Dim FName As New DataColumn("نام")
'سپس نوع آن را که میخواهیم از نوع رشته ای باشد را تنظیم مینماییم .
FName.DataType = System.Type.GetType("System.String")
'حال این فیلد را به کالکشن ستونهای جدول خود اضافه مینماییم
MyTable.Columns.Add(FName)
'مراحل فوق را برای فیلدهای بعدی نیز تکرار میکنیم .
Dim LName As New DataColumn("نام خانوادگی")
LName.DataType = System.Type.GetType("System.String")
MyTable.Columns.Add(LName)
Dim Phone As New DataColumn("شماره تلفن")
Phone.DataType = System.Type.GetType("System.String")
MyTable.Columns.Add(Phone)
Dim FatherName As New DataColumn("نام پدر")
FatherName.DataType = System.Type.GetType("System.String")
MyTable.Columns.Add(FatherName)
3 - در این مرحله باید از آبجکت DataRow استفاده نماییم(ای این آبجکت برای دستیابی به داده های جدول ، حذف ، اضافه و یا به روزرسانی آنها استفاده میشود .). بعد از ایجاد یک شی ء از آبجت DataRow ، شما باید توسط متد NewRow مربوط به آبجکت DataTable ، یک سطر خالی در درون جدول با تمام فیلدهایی که از قبل برای جدول تنظیم کرده بودید ، اضافه نمایید . سپس میبایست سطر را با اطلاعات مورد نظر پر کرده و توسط متد Add مربوط به آبجکت DataTable ، اطلاعات آن را به جدول اضافه نمایید . کد زیر را به ادامه رویداد کلیک دکمه اضافه نمایید :
<span dir=ltr> Dim Row1, Row2, Row3, Row4 As DataRow
'سپس یک سطر خالی ایجاد میکنیم
Row1 = MyTable.NewRow
فیلدها را با مقادیر مورد نظر پر میکنیم .
Row1("نام") = "علیرضا"
Row1("نام خانوادگی") = "مداح"
Row1("شماره تلفن") = "123456"
Row1("نام پدر") = "علی"
'سپس سطر را به جدول اضافه میکنیم
MyTable.Rows.Add(Row1)
'هممین عملیات را برای سطرهای دیگر نیز انجام میدهیم
Row2 = MyTable.NewRow
Row2("نام") = "علی"
Row2("نام خانوادگی") = "حسنی"
Row2("شماره تلفن") = "654321"
Row2("نام پدر") = "مهدی"
MyTable.Rows.Add(Row2)
Row3 = MyTable.NewRow
Row3("نام") = "رضا"
Row3("نام خانوادگی") = "حمیدی"
Row3("شماره تلفن") = "2468101"
Row3("نام پدر") = "بابک"
MyTable.Rows.Add(Row3)
Row4 = MyTable.NewRow
Row4("نام") = "سینا"
Row4("نام خانوادگی") = "محمودی"
Row4("شماره تلفن") = "5896321"
Row4("نام پدر") = "بابک"
MyTable.Rows.Add(Row4)
</span>
(کدهای این قسمت در اینجا به صورت به هم ریخته نمایش داده شده است . ولی بعد از Paste کردن در روال مربوطه ، درست میشوند . )
4 - دست آخر باید یک دیتاست ایجاد کرده ، جدول خود را به آن اضافه کرده و سپس کنترل Datagrid را به دیتاست بایند کنیم . کد زیر را به ادامه رویداد کلیک دکمه اضافه نمایید :
'دیتاست را ایجاد مینماییم
Dim DS As New DataSet
'جدول خود را به آن اضافه میکنیم
DS.Tables.Add(MyTable)
'کنترل دیتاگرید را به دیتاست بایند میکنیم
DataGrid1.SetDataBinding(DS, "Info")
5 - حال خاصیت RightToLeft مربوطه به فرم را بر روی True قرار داده و برنامه را اجرا نمایید . بر روی دکمه کلیک کرده تا نتیجه کار را ببینید .
(ببخشید که انشای من یه کمی مشکل داره. :oops: )