منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[كود] تعديل Control.WndProc Method - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة السي شارب C#.NET (http://vb4arb.com/vb/forumdisplay.php?fid=175)
+--- قسم : قسم اسئلة C#.NET (http://vb4arb.com/vb/forumdisplay.php?fid=176)
+--- الموضوع : [كود] تعديل Control.WndProc Method (/showthread.php?tid=3797)



تعديل Control.WndProc Method - أسامة - 10-09-14

vb.net كود
كود :
Sub CustomPaint()
        CreateGraphics.DrawRectangle(New Pen(Color.FromArgb(0, 0, 0)), New Rectangle(1, 1, Width - 3, Height - 3))
        CreateGraphics.DrawRectangle(New Pen(Color.FromArgb(90, 90, 90)), New Rectangle(0, 0, Width - 1, Height - 1))
    End Sub
C# يوجد خطأ
كود :
public void CustomPaint()
{
    CreateGraphics.DrawRectangle(new Pen(Color.FromArgb(0, 0, 0)), new Rectangle(1, 1, Width - 3, Height - 3));
    CreateGraphics.DrawRectangle(new Pen(Color.FromArgb(90, 90, 90)), new Rectangle(0, 0, Width - 1, Height - 1));
}
الخطأ فى
CreateGraphics.DrawRectangle(new Pen(Color.FromArgb(0, 0, 0)), new Rectangle(1, 1, Width - 3, Height - 3));
CreateGraphics.DrawRectangle(new Pen(Color.FromArgb(90, 90, 90)), new Rectangle(0, 0, Width - 1, Height - 1));
vb.net

كود :
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
        MyBase.WndProc(m)
        If m.Msg = 15 Then CustomPaint()
    End Sub
C#
كود :
protected override void WndProc(ref System.Windows.Forms.Message m)
    {
        base.WndProc(m);
        if (m.Msg == 15)
        {
            CustomPaint();
        }
    }
الخطأ فى base.WndProc(m);


RE: تعديل - أسامة - 11-09-14

شكرآ اخى base.WndProc(ref m); يعمل الان لكن

e.Graphics لايمكن أستخدامها
the name 'e does not exist in the current context


RE: تعديل - vbnet - 11-09-14

.....

راجع الرابط التالي (Control.CreateGraphics Method)

بالنسبة لـ WndProc راجع الموضوع التالي (Control.WndProc Method)
يجب التحديد بـ ref للمتغير m
كود :
base.WndProc(ref m);

.....


RE: تعديل Control.WndProc Method - أسامة - 11-09-14

شكرآ اخى تم حل المشكلة
سؤال كيف يممكننى ان اتحكم فى Listbox من Form مختلف جربت الكثير من الاكواد ولم تنجح!


RE: تعديل Control.WndProc Method - vbnet - 11-09-14

.....

. لم أفهم فكرة مشروعك،
. مالذي صعب عليك في ListBox
. وماذا تقصد بـ Form مختلف
؟!

.....


RE: تعديل Control.WndProc Method - أسامة - 11-09-14

اقصد لو يوجد 2 Form فى Form 2 يوجد ListBox فه يمكن التحكم فى هذه ListBox من Form1 مثلآ اضافه Item او مسح الخخخخخخخخ


RE: تعديل Control.WndProc Method - vbnet - 11-09-14

.....

للتحكم في أدوات Form2عن طريق Form1 في لغة #Visual C يجب أولا تحديد تلك الأدوات في الـ Form2 وتغيير قيمة الخاصية Modified لكل أداة إلى Public

كود :
// Form1

Form2 frm2 = new Form2();

private void button1_Click(object sender, EventArgs e) {
    frm2.listBox1.Items.Add("aaaa");
    frm2.Show();
}

.....