PDA

View Full Version : کلیک روی ستون عنوان در گرید و نمایش متن



abi_sarab
پنج شنبه 02 اردیبهشت 1389, 15:20 عصر
سلام.
خوبید؟
آقایان و خانوم های مهندس سلام.
بنده یک جدولی دارم که به ترتیب شامل ستون های زیر است:
1 - آی دی
2 - عنوان
3 - تعداد صفحات
4 - متن
که سه ستون آی دی و عنوان و تعداد صفحات را در یک گرید نمایش می دهم.
حالا می خوام وقتی که روی ستون عنوان دوبار کلیک می کنم متن آن عنوان را در یک richtextbox به من نشون بده.
اگر امکان هست به من کمک کنید که بنده شما آقایان و خانوم ها را دعای بسیار خواهم کرد.
مرسی.

kebriya
پنج شنبه 02 اردیبهشت 1389, 18:27 عصر
اگه فقط یه رکورد باشه میتونی از کد زیر استفاده کنی



Private Sub DataGridView1_ColumnHeaderMouseDoubleClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArg s) Handles DataGridView1.ColumnHeaderMouseDoubleClick
If e.ColumnIndex = 1 Then
RichTextBox1.Text = DataGridView1.Rows(0).Cells(3).Value.ToString
End If
End Sub

abi_sarab
پنج شنبه 02 اردیبهشت 1389, 19:23 عصر
بنده فی الواقع می خوام مقداری که در فیلد چهارم که در واقع همان ستون متن است نشان داده شود.
ولی ستون متن در گرید ما به کاربر نشان داده نمی شود.
در واقع می خوام وقتی که روی ستون دوم از گرید کلیک می کنم متن از ستون چهارم نشان داده شود.

kebriya
پنج شنبه 02 اردیبهشت 1389, 19:46 عصر
کد بالا هم همینکارو میکنه فقط ستون 4 رو مخفی کن یعنی visible اون رو false کن.

abi_sarab
شنبه 04 اردیبهشت 1389, 08:28 صبح
نه آقا جان. کار نکرد.
ببینید ستون اول ما ردیف است، ستون دوم ما عنوان است، ستون سوم ما تعداد صفحات و ستون چهارم ما متن است. که همه اینها با هم تشکیل یک رکورد را می دهند.
حالا من می خوام وقتی که روی ستون دوم کلیک می کنم متن از ستون چهارم در یک richtextbox نمایش داده شود.

kebriya
شنبه 04 اردیبهشت 1389, 16:38 عصر
نه آقا جان. کار نکرد.
ببینید ستون اول ما ردیف است، ستون دوم ما عنوان است، ستون سوم ما تعداد صفحات و ستون چهارم ما متن است. که همه اینها با هم تشکیل یک رکورد را می دهند.
حالا من می خوام وقتی که روی ستون دوم کلیک می کنم متن از ستون چهارم در یک richtextbox نمایش داده شود.

اگه میشه یا فایلتو بذار یا یه عکس بذار تا با توجه به اون واست بنویسم آخه من تست کردم جواب داده.

b.mahsa
شنبه 04 اردیبهشت 1389, 17:50 عصر
کد بالا جواب میده به شرطی که موقع select (پر کردن dataset) اون ستون رو هم انتخاب کنید . فقط visible اش رو false کنید .
من فکر میکنم شما ستون 4 رو تو دستور select نمیگیرید که نشون نمیده.

abi_sarab
شنبه 04 اردیبهشت 1389, 18:04 عصر
خوب بله دیگه من تو دستور Select نمی گیرم. چون اگه بگیرم گرید خیلی سنگین می شه و خیلی دیر load می شه.
در ضمن دستور جواب هم نمی ده

kebriya
شنبه 04 اردیبهشت 1389, 18:08 عصر
خوب بله دیگه من تو دستور Select نمی گیرم. چون اگه بگیرم گرید خیلی سنگین می شه و خیلی دیر load می شه.

در این صورت باید ردیف مورد نظر رو توی جدولت پیدا کنی و متن رو توی richbox بیاری که اگه تعداد ردیفها و متنهات زیاد باشه بازم سنگین میشه

b.mahsa
شنبه 04 اردیبهشت 1389, 18:21 عصر
گرید شما مطمئنا یک سطر نداره پس کلا باید event رو تغییر بدین و رو event کلیک روی سطر گرید کدتون رو بنویسید . اگر هم میخواهید که گرید سنگین نشه بهترین کار اینه که موقع کلیک کردن روی سطر مورد نظر id اون سطر رو بگیرید و متن رو نسبت به اون id انتخاب کنید و نشان بدید.

abi_sarab
یک شنبه 05 اردیبهشت 1389, 08:34 صبح
خوب چه طور متن رو نسبت به اون آی دی نشون بدم؟

abi_sarab
چهارشنبه 08 اردیبهشت 1389, 19:09 عصر
کسی نیست به ما کمک کنه؟
F1 F1 F1 F1 F1 F1 F1 F1 F1

kebriya
پنج شنبه 09 اردیبهشت 1389, 10:40 صبح
کسی نیست به ما کمک کنه؟
F1 F1 F1 F1 F1 F1 F1 F1 F1

خوب چند دفعه بگم بابا یه عکس از فرمت بذار کدشو واست میذارم

ziraksima
پنج شنبه 09 اردیبهشت 1389, 11:07 صبح
گرید شما مطمئنا یک سطر نداره پس کلا باید event رو تغییر بدین و رو event کلیک روی سطر گرید کدتون رو بنویسید . اگر هم میخواهید که گرید سنگین نشه بهترین کار اینه که موقع کلیک کردن روی سطر مورد نظر id اون سطر رو بگیرید و متن رو نسبت به اون id انتخاب کنید و نشان بدید.



مي توني اين كار رو هم بكني:


PrivateSub DataGrid1_CurrentCellChanged(ByVal sender AsObject, ByVal e As System.EventArgs) Handles


Dim x As Integer

x = DataGrid1.CurrentCell.RowNumber
Label1.Text = DataGrid1.Item(x, 1)
Dim con2 As New SqlConnection(config)
con.Open()
strSQL = "SELECT [NameFildha] FROM [NameJadval] WHERE id='" + Label1.Text + "'"

Dim da As New SqlDataAdapter(strSQL, con)
Dim ds As New DataSet
da.Fill(ds, "NameJadval")
RiCHText.DataBindings.clear()
RiCHText.DataBindings.Add(New Binding("Text", ds, "NameJadval.NameFild"))


EndSub

kebriya
پنج شنبه 09 اردیبهشت 1389, 14:43 عصر
این برنامه رو ببین فکر کنم همینو میخواین