الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تغيير التحديد الافتراضي في الداتا جريد بعد التحديث

بدأه ابو البرنس في 24 مارس 2011 · 9 رد · 1,338 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

اخواني الكرام عندي داتا جريد تاخذ البيانات من قاعدة بيانات كل خمس ثوانٍ والمشكله اني اذا كنت محدد الصف الخامس مثلاً بعد الخمس الثواني ينتقل الكورنت current الى الخليه الاولى في الصف الاول وعند كتابة كود تحديد الصف على الصف الخامس وتنقلت عبر الضغط بالماوس يمشي الحال المهم اني اذا تنقلت عبر الاسهم فوق او تحت عبر اسطر الداتا جريد وعملت تحديث للبيانات ينتقل التحديد الى الكورنت اي الى الصف الاول وانا اريد اذا ضغطت على السهم اللي لفوق يتحدد الصف الرابع واذا ضغطت على السهم اللي لتحت يتحدد الصف السادس مع مراعاة ان البيانات يتم تحديثها تلقائياً كل خمس ثوان

فما هو الحل لجعل الكورنت عند الصف المحدد حتى بعد عمل تحديث للبيانات

ولكم جزيل الشكر والتقدير

منتظر ردودكم

سبحان الله وبحمده سبحان الله العظيم

راسلني

#2

السلام عليكم ورحمه الله وبركاته

اخي هذا هو حل مشكلتك


DataGridView1.Rows(e.RowIndex).Selected = True
End Sub
Private Sub DataGridView1_CellEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellEnter

.:: Wish to become better and better ::.

#3

اخواني الكرام هذا مثال فيه مشكلتي ارجوا ممن يعلم حل للمشكله ان يعدل على المثال

المشكله هي انه عندما اتنقل عبر الاسهم (اعلى او اسفل) بيرجع التحديد الى الصف الاول بعد عمل تحديث للبيانات

ارجوا المساعده

WindowsFormsApplication1.rar

سبحان الله وبحمده سبحان الله العظيم

راسلني

#4

السلام عليكم ورحمه الله وبركاته

اخي اولا هل الكود السابق حل مشكلتك الاولى؟؟؟ اما حل سؤالك الاخير هو عليك بالاحتفاظ بالصف في متغير من ثم في ال Timer وبعد التحديث اجعله هو الصف المختار من خلال ذلك المتغير

.:: Wish to become better and better ::.

#5
VB Helper كتب:

السلام عليكم ورحمه الله وبركاته

اخي اولا هل الكود السابق حل مشكلتك الاولى؟؟؟ اما حل سؤالك الاخير هو عليك بالاحتفاظ بالصف في متغير من ثم في ال Timer وبعد التحديث اجعله هو الصف المختار من خلال ذلك المتغير

اخي الكريم اشكرك على تجاوبك معي

ولكن هلا بينت لي كيف اعمل ذلك اي هل ممكن ان تكتب الكود الخاص بذلك

الكود السابق لم يحل المشكله

ولك جزيل الشكر

سبحان الله وبحمده سبحان الله العظيم

راسلني

#6

السلام عليكم ورحمه الله وبركاته

اكتب لي الكود الي داخل ال Timer

.:: Wish to become better and better ::.

#7

تفضل اخي هذا الكود بالسي شارب انا اعرف انه نفس الكود بالـ VB.NET

try
        	{
            	k = int.Parse(dataGridView1.SelectedRows[0].Index.ToString());
        	}
        	catch
        	{
            	k = 0;
        	};

        	try
        	{
            	string sqlstr = "select * from tb";
            	OleDbDataAdapter dss = new OleDbDataAdapter(sqlstr, con);
            	DataTable dt1t = new DataTable();
            	dss.Fill(dt1t);
            	dataGridView1.DataSource = dt1t;

            	if (dataGridView1.RowCount > 0)
            	{
                	dataGridView1.ClearSelection();
                	dataGridView1.Rows[k].Selected = true;
            	}
        	}
        	catch { }

هذا الكود ياخذ الصف المحدد ويضعه داخل المتغير k ثم بعد عمل التحديث يرجع التحديد الى الصف السابق اللي تم تحديده k لكن المشكله هي في الـ corrent row لانه لما تحرك التحديد بالاسهم بينتقل التحديد الى الcorrent row وبعد عمل التحديث يعود الـcorrent row الى الصف الاول حتى ولو نقلت التحديد الى الصف اللي الـ corrent row يضل مكانه في الصف الاول وهو للقراءه فقط

اذا كان يتوفر لديك حل للمشكله ارجوا ان تبلغني ولك جزيل الشكر

سبحان الله وبحمده سبحان الله العظيم

راسلني

#8

السلام عليكم ورحمه الله وبركاته

عذرا اخي لا يمكنني كتابه كود سي شارب هنا لأنه قسم مخصص للفيجوال بيسك

.:: Wish to become better and better ::.

#9

وعليكم السلام ورحمة الله وبركاته

اخي الكريم اكتب بالفيجوال بيسك ليست مشكله

سبحان الله وبحمده سبحان الله العظيم

راسلني

#10

السلام عليكم ورحمه الله وبركاته

عفوا اخي بس اردت ان التزم بقوانين المنتدى ... هذا هو حل جوابك


Sub df()
k1 = k
Dim sqlstr As String = "select * from tb"
Dim dss As New OleDbDataAdapter(sqlstr, con)
Dim dt1t As New DataTable()
dss.Fill(dt1t)
If dt1t.Rows.Count > 0 Then
dataGridView1.DataSource = dt1t
dataGridView1.ClearSelection()
dataGridView1.Rows(k1).Selected = True
End If
End Sub

private Sub dataGridView1_SelectionChanged(sender As object, e As EventArgs)
If dataGridView1.SelectedRows.Count > 0 Then
k = dataGridView1.SelectedRows(0).Index
End IF
End Sub
        Dim k,k1 As Integer

بالنسبه للأسهم بتشتغل بس بحركه بطيئه لأنك ضبطت ال Interval 1000 وهي قيمه زمنيه صغيره للتحديث ... يمكنك جعلها 5000 وترى النتائج

.:: Wish to become better and better ::.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…