منم یه همچین چیزی احتیاج دارم لطفاً کمک کنید
سلام..........
اگه هم Txt ها و هم دیتاگرید شما از یه bindingSource استفاده کنند اونوقت به طور اوتوماتیک هر سطری از دیتا گرید را که انتخاب کنید در textBox ها هم اعمال می شود...
موفق و سبز و بهاری باشید
در امان از پاییز برگ ریزان
مشکلت دقیقا تو کدوم قسمتشه؟
کلیات کار به این شکله :
مطمعنا اون سطری که روش کلیک میشه ، یا ID یا نام ،نام خانوادگی و یا هر فیلد کلیدی دیگه داره که اون را از سایر سطر ها متمایز میکنه، وقتی که روی سطر کلیک یا دابل کلیک میشه
روش اول : فیلد کلیدی را به فرم دوم بفرست (اگه میپرسی چطوری ، خیلی راحت ، یک متغیر Public تو فرم دوم تعریف کن و قبل از فراخوانی فرم دوم (Form2.Show) اون متغیر را با اون مقدار کلیدی پر کن) . بعد از باز شدن فرم دوم ، در رویداد Form_Load با استفاده از کلمه کلیدی که داری، اطلاعات مربوط به اون کلمه کلیدی را از دیتابیس و یا هرجای دیگه که ذخیره شده فراخوانی کن و تو TextBox ها قرار بده.
روش دوم : اگر تعداد فیلد ها کمه ، به تعداد فیلدها تو فرم دوم متغیر Public تعریف کن،( یا اگر میخوای کمی حرفه ای تر بشه یک آرایه تعریف کن ، و یا اگر میخوای خیلی حرفه ای بشه یک Structure بساز ) و همه فیلد ها را به اون ها نسبت بده و در هنگام باز شدن فرم دوم اطلاعات انتقال داده شده را در جاهای مناسب قرار بده.
دانلود حسابخانه مانی، برنامه مدیریت درآمد و هزینه رایگان
هر آنچه که هستیم، نتیجه افکاریست که در گذشته داشته ایم. (بودا)
آخرین ویرایش به وسیله Mani_rf : یک شنبه 10 مرداد 1389 در 12:02 عصر دلیل: تغییر مفهوم پاسخ
دانلود حسابخانه مانی، برنامه مدیریت درآمد و هزینه رایگان
هر آنچه که هستیم، نتیجه افکاریست که در گذشته داشته ایم. (بودا)
سلام....
من فکر می کنم کدی که شما لطف کردین گذاشتین، مقدار سلول انتخابی رو برمی گردونه.
در حالی که کد من با انتخاب سطر مورد نظر (مثلاً با کلیک بروی سر سطر) مقدار ستون مورد نظر که البته می تونه انتخاب هم نشده باشه. برمی گردونه.
البته بستگی به نیاز دوستمون داره.....
اگر اشتباه می کنم ، لطفاً توضیح دهید.....
فکر کنم من مهم همین را گفتم!!!
و فکر کنم اول روش شما را تایید کردم!!!
بعد یک نکته نیمه آموزشی، تو VB.NET نیازی به .Tostring نیست، خود VB این کار را میکنه اما تو #C باید این کار را بکنید.
دانلود حسابخانه مانی، برنامه مدیریت درآمد و هزینه رایگان
هر آنچه که هستیم، نتیجه افکاریست که در گذشته داشته ایم. (بودا)
با سلام:
من یک فرم دارم که به صورت گرید اطلاعات را نشان میدهد و هم یک فرم که داده ها روو به صورت textbox نشان میدهد.
میخواهم وقتی روی یک سطر گرید کلیک میکنم فرم دوم (textBox) باز شود و اطلاعات مربوط به سطری که رو آن کلیک کرده ام را نشان دهد.
در vb.ne
با تشکر
سلام دوست من :
اگه می خوای بدون bindingSource این کار رو بکنی ، فکر کنم این روش از گرفتن متغیر Public از این حرفها ساده تره (با عرض پوزش از مدیر بخش) :
اول سازنده فرم دوم رو به این صورت بنویس و پارامترهای ورودی رو مقادیر سلولهای گرید قرار بده :
Public Sub New(ByVal name As String, ByVal family As String, ByVal address As String)
InitializeComponent()
txtName.Text = name
txtFamily.Text = family
txtAddress.Text = address
End Sub
و موقع ساختن object از فرم دوم برای Show کردن مقدیر سلولهل رو بهش بده :
With DataGridView1.CurrentRow
Dim frmObject As New frm2(.Cells(0).Value, .Cells(1).Value, .Cells(2).Value)
frmObject.Show()
End With
اگر هم از این روش (که خیلی آسونه و خرجی هم نداره ) نخوای استفاده کنی همون binding بهتره ، اما خودم از این استفاده میکنم .
موفق باشید .
من از بایند که استفاده میکنم و این کد رو مینویسم که bindingsourc رو به فرم دوم که همون فرم frmbook هست معرفی کنم باز جواب نمیده
ممنون از حوصله تون
PrivateSub TbookDataGridView_CellClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles TbookDataGridView.CellClick
FrmBook.TbookBindingSource.Position = TbookBindingSource.Position
FrmBook.Show()
EndSub
TextBox1.DataBindings.Add(New Binding("text", DataSet1, "book.name"))