PDA

View Full Version : پاس دادن اطلاعات از فرم دوم به فرم اول و یا مادر



viper2009
یک شنبه 18 تیر 1391, 10:35 صبح
با سلام

در تالار و گوگل در این باره جستجو کردم ولی مثالی با وی بی دات نت نیافتم، البته یک مثال در تالار سی شارپ بود ولی در وبی خطا می ده.

دوستان اگر راهنمایی کنند ممنون می شوم

من با ShowDialog فرم دوم را باز می کنم و می خواهم کاربر با انتخاب رکوردی از دیتاگرید(هر دیتاگریدی) که با جستجوی رکورد صورت می گیرد، اطلاعات لازم در فیلدهای فرم اول درج شوند.

در حالت کلی از متغیر استفاده کردم که دستور اجرا می شود ولی اطلاعاتی درج نمی شوند.
از فرم دوم هم فرم اول را صدا زدم که این بار اطلاعات پاس داده می شوند ولی اطلاعات قبلی پاک می شوند(بخاطر اینکه فرم دوباره لود می شود)

در تاپیکهای مختلف هم گفته بودند که یک Property برای فرم تعریف کنم که باز هم عکس العملی نمی دهد.

Endless Love
یک شنبه 18 تیر 1391, 12:38 عصر
سلام . منظور شما اینه که میخواید با انتخاب یک رکورد از دیتاگریدویو ، اطلاعات آن رکورد را به فرم دیگری انتقال دهید؟ اگه اینه بگید تا براتون کد بزارم ، نیازی به تعریف متغیر نیست.

viper2009
یک شنبه 18 تیر 1391, 16:02 عصر
سلام
دقیقاً همین که گفتید و این نکته را هم اضافه کنید، که اگر در فرم اول کمبو باکس و کنترل مشابه هم بود این قابلیت را داشته باشند.

Endless Love
یک شنبه 18 تیر 1391, 16:18 عصر
بله میشه . شما باید از کدنویسی خود کنترل استفاده کنید نه متغیر مثلا برای همین دیتاگرید ویو که گفتید باید در رویداد کلیک یا دابل کلیک موس دیتاگرید ویو (منظورم این رویداده :




(PrivateSub DataGridViewX1_MouseDoubleClick(ByVal sender AsObject, ByVal e As System.Windows.Forms.MouseEventArgs) Handles DataGridViewX1.MouseDoubleClick

کد زیر را بنویسید :


Dim i AsInteger
ّForm1.TextBox1.Text = Trim(DataGridViewX1.SelectedRows(i).Cells(0).Value .ToString)
که متغیر i جهت انتخاب رکورد مورد نظر هست و cell(0) هم جهت انتخاب فیلد مورد نظر از دیتاگریدویو هست .
Form1 هم همون فرمی هست که باید اطلاعات گریدویو را در آن قرار بدید .

viper2009
دوشنبه 19 تیر 1391, 01:41 صبح
جواب می ده ولی به صورت زیر در دیتا گرید جانوس

Form1.txtNumber.Text = Trim(GV.CurrentRow.Cells("number").Value.ToString)

Endless Love
دوشنبه 19 تیر 1391, 09:58 صبح
دیتاگرید جانوس چیه؟ کامپوننته؟بله توی پرانتز cells به دو صورت میشه یکی شماره فیلد و یکی هم نام فیلد . جالبه شما سطر جاری را به جای سطر انتخابی نوشتی . این هم روش دیگه ای هست . منم تستش میکنم .

Majid842
دوشنبه 19 تیر 1391, 11:37 صبح
با سلام
من اطلاعات را از یک فرم به فرم دیگر پاس دادم !
اما سوال من این است که :
من زمانی که اطلاعات گردیدویوم را به داخل فرم ورود اطلاعات پاس میدم اگر یک کامبوباکس (Combobox)داشته باشیم وبه بانک هم متصل باشد اطلاعات را نمایش نمی ده ؟؟؟؟؟
مقدار بانک را برمیداره مثل زمانی که فرم ورود اطلاعات را باز میکنیم !!!
در TextBox و Lable اطلاعات نمایش داده میشود ولی در Comboboxها خیر !!!

viper2009
دوشنبه 19 تیر 1391, 15:30 عصر
با سلام
من اطلاعات را از یک فرم به فرم دیگر پاس دادم !
اما سوال من این است که :
من زمانی که اطلاعات گردیدویوم را به داخل فرم ورود اطلاعات پاس میدم اگر یک کامبوباکس (Combobox)داشته باشیم وبه بانک هم متصل باشد اطلاعات را نمایش نمی ده ؟؟؟؟؟
مقدار بانک را برمیداره مثل زمانی که فرم ورود اطلاعات را باز میکنیم !!!
در TextBox و Lable اطلاعات نمایش داده میشود ولی در Comboboxها خیر !!!

فکر کنم باید مقدار دهی به کمبو را به شکل زیر اختصاص دهی

Combobox.SelectedValue=Trim(GV.CurrentRow.Cells("number").Value())


البته فیلدی که در دیتا گرید مختص کمبو باکس هست باید مقدار عددی داشته باشه

یعنی مقدار :

Trim(GV.CurrentRow.Cells("number").Value() باید خروجی اش عدد باشد

viper2009
دوشنبه 19 تیر 1391, 15:37 عصر
دیتاگرید جانوس چیه؟ کامپوننته؟بله توی پرانتز cells به دو صورت میشه یکی شماره فیلد و یکی هم نام فیلد . جالبه شما سطر جاری را به جای سطر انتخابی نوشتی . این هم روش دیگه ای هست . منم تستش میکنم .


آخه در دیتا گرید جانوس این تابع را ندارد و باید از دستوری که نوشتم بصورت انتخاب سطر جاری استفاده نمود، که اتفاقاً من همین روش را می خواستم امیدوارم در مورد کمبو باکس هم جواب دهد
http://www.janusys.com/controls (http://www.janusys.com/controls/)

Majid842
دوشنبه 19 تیر 1391, 18:47 عصر
یک راه دست و اصولی بگویید این راه ها را رفتم جواب نداد؟؟؟؟؟

Endless Love
دوشنبه 19 تیر 1391, 19:16 عصر
سلام . من دیتاگریدویوم کمبوباکس نداره ولی اطلاعات رو از کمبوباکسم میگیرم و به فرمم انتقال میدم بصورت کد زیر . حالا ببین به دردت میخوره یا نه ؟
Form1.TexBox1.txt=ComboBoxEx1.SelectedItem.ToStrin g

یک راه دست و اصولی بگویید این راه ها را رفتم جواب نداد؟؟؟؟؟

Majid842
دوشنبه 19 تیر 1391, 23:47 عصر
نه این روش برای ارسال از Combo به Text هستش
من می خواهم از گرید به Combo ای که به بانک متصل شده ارسال کنم

Majid842
دوشنبه 09 مرداد 1391, 12:27 عصر
لطفا کمک کنید باید پروژم رو تحویل بدم!!!!!

sina-pro
دوشنبه 20 آبان 1392, 21:40 عصر
سلام دوستان.
من یه فرم اصلی دارم و یه فرم لاگین میخوام وقتی کاربر نام کاربری خودشو که تو بانک sql سیو هست رو وارد کرد نام و نام خانوادگیش توی یه Lable تو فرم اصلی نمایش بده , چی کار باید بکنم ممنون میشم راهنمایی کنید.

viper2009
سه شنبه 21 آبان 1392, 01:03 صبح
سلام دوستان.
من یه فرم اصلی دارم و یه فرم لاگین میخوام وقتی کاربر نام کاربری خودشو که تو بانک sql سیو هست رو وارد کرد نام و نام خانوادگیش توی یه Lable تو فرم اصلی نمایش بده , چی کار باید بکنم ممنون میشم راهنمایی کنید.

شما باید از متد Hide کردن فرم لاگین استفاده کنید طبق کد زیر

Try
Dim Str As String = "Data Source=.\SQLEXPRESS;Initial Catalog=DatabaseName;Integrated Security=True;Pooling=False; timeout=30"
ConStr = New SqlConnection(Str)
CmdLogon = New SqlCommand("SELECT COUNT(*) FROM tableAdmin WHERE user=@user AND pass=@pass", ConStr)
CmdLogon.Parameters.AddWithValue("@user", txtUser.Text)
CmdLogon.Parameters.AddWithValue("@pass", txtPass.Text)
ConStr.Open()
If CmdLogon.ExecuteScalar = 1 Then
Dim f As New frmMain
Try
Dim ConStr2 As New SqlConnection(Str)
Dim CmdLoad As New SqlCommand("SELECT * FROM tableAdmin WHERE user='" & User.Text & "' AND pass='" & txtPass.Text & "'", ConStr2)
Dim DrUserName As SqlDataReader
ConStr2.Open()
DrUserName = CmdLoad.ExecuteReader
While DrUserName.Read()
f.BarStaticUserName.Caption = DrUserName.Item("user")
f.BarStaticName.Caption = DrUserName.Item("FullName")
End While
DrUserName.Close()
ConStr2.Close()
Catch ex As Exception

End Try
Me.Hide()
f.ShowDialog()
Me.Close()
Else
'MessageBox.Show("نام کاربری و یا رمز عبور شما اشتباه است، در غیر این صورت نام کاربری شما غیر فعال است", "خطای ورود", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1)

End If


و کد
f.BarStaticUserName.Caption = DrUserName.Item("user")
f.BarStaticName.Caption = DrUserName.Item("FullName")، داده ها را در فرم اصلی نشان می دهد

kamiloted
پنج شنبه 12 آذر 1394, 16:18 عصر
سلام خدمت همه ی دوستان عزیز
بنده با این مشکل برخورد کردم که میخوام پاس بدم 2 سلول یا فیلد دیتاگریدویو فرم یک به 2تکست باکس فرم 2 با دابل کلیک کردن بر روی سلول های دیتاگرید ویو.با سی شارپ
لطفا بنده را راهنمایی کنید.
سپاس گزارم