السلام عليكم...
1. السؤال الأول حول التوسيط:
* إذا كنت تريد فقط توسيط مكون واحد (مثلاً Picture1) في Form واحدة فاكتب السطرين التاليين في الحدث Form_Resize:
* أما إذا كنت تريد نفس الأمر مع أكثر من مكون واحد و في أكثر من Form فاكتب الإجراء التالي في Module:
ثم قم باستدعائه من الحدث Form_Resize للـ Form المعنية، مثلاً:
حيث Me تشير دائماً إلى الـ Form التي تستدعي الإجراء.
2. السؤال الثاني حول تكبير الصورة حسب حجم المكون:
* يمكنك استعمال المكون Image مع ضبط الخاصية Stretch على True، حيث ستأخذ الصورة حجم المكون Image مهما غيرت حجمه.
* أما إذا كان من الضروري استعمال المكون PictureBox فضع الصورة في مكون Image مخفي (Visible = False) ثم اكتب الكود التالي في الحدث Paint الخاص بالـ PictureBox:
حيث نقوم بنسخ الصورة من الـ Image إلى الـ PictureBox مع تمديدها أو تقليصها حسب حجم الـ PictureBox.
*** للفائدة: يمكننا استعمال الوظيفة PaintPicture لقلب الصورة أفقياً و / أو رأسياً و ذلك باستعمال إحداثيات النهاية كإحداثيات بداية و استعمال قيمة سالبة للأبعاد. مثلاً لقلب الصورة أفقياً:
نرجو الاستفادة و السلام.
1. السؤال الأول حول التوسيط:
* إذا كنت تريد فقط توسيط مكون واحد (مثلاً Picture1) في Form واحدة فاكتب السطرين التاليين في الحدث Form_Resize:
كود :
Private Sub Form_Resize()
On Error Resume Next
Picture1.Move (ScaleWidth - Picture1.Width) / 2, (ScaleHeight - Picture1.Height) / 2
End Sub* أما إذا كنت تريد نفس الأمر مع أكثر من مكون واحد و في أكثر من Form فاكتب الإجراء التالي في Module:
كود :
Public Sub CenterControl(AForm As Form, AControl As Control)
On Error Resume Next
AControl.Move (AForm.ScaleWidth - AControl.Width) / 2, (AForm.ScaleHeight - AControl.Height) / 2
End Subثم قم باستدعائه من الحدث Form_Resize للـ Form المعنية، مثلاً:
كود :
CenterControl Me, Picture12. السؤال الثاني حول تكبير الصورة حسب حجم المكون:
* يمكنك استعمال المكون Image مع ضبط الخاصية Stretch على True، حيث ستأخذ الصورة حجم المكون Image مهما غيرت حجمه.
* أما إذا كان من الضروري استعمال المكون PictureBox فضع الصورة في مكون Image مخفي (Visible = False) ثم اكتب الكود التالي في الحدث Paint الخاص بالـ PictureBox:
كود :
Private Sub Picture1_Paint()
Picture1.PaintPicture Image1.Picture, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight
End Subحيث نقوم بنسخ الصورة من الـ Image إلى الـ PictureBox مع تمديدها أو تقليصها حسب حجم الـ PictureBox.
*** للفائدة: يمكننا استعمال الوظيفة PaintPicture لقلب الصورة أفقياً و / أو رأسياً و ذلك باستعمال إحداثيات النهاية كإحداثيات بداية و استعمال قيمة سالبة للأبعاد. مثلاً لقلب الصورة أفقياً:
كود :
Private Sub Picture1_Paint()
Picture1.PaintPicture Image1.Picture, Picture1.ScaleWidth, 0, -Picture1.ScaleWidth, Picture1.ScaleHeight
End Subنرجو الاستفادة و السلام.
بِسْمِ اللهِ الرَّحْمَنِ الرَّحِيمِ ( وَ مَا تُقَدِّمُوا لِأَنفُسِكُم مِّنْ خَيْرٍ تَجِدُوهُ عِندَ اللهِ هُوَ خَيْراً وَ أَعْظَمَ أَجْراً ) صَدَقَ اللهُ الْعَظِيمُ
