إقتباس :قبل التعديل
GraphZ.DrawString(Company, New Font("times new roman", 12, FontStyle.Bold), New SolidBrush(Color.Black), 0, 50)
بعد التعديل
GraphZ.DrawString(Company, New Font(form1.combobox1.text), New SolidBrush(Color.Black), 0, 50)
شىء طبيعى أن يحدث خطأ فى الموديول لأن الفونت لم يتم تكوينه بشكل صحيح يمكنك استخدام الكود التالى ليعمل معك
كود :
GraphZ.DrawString(TheText, New Font(form1.combobox1.text, 9, FontStyle.Bold), New SolidBrush(Color.Black), 70, 40)
لكن
لكى تحصل على ما تريد بطريقة أفضل اليك الخطوات
1- ستقوم بتغيير فى تعريف الدالة فى الموديول حتى يستقبل متغير الخط و يكون بهذا الشكل
كود :
Function Code128(ByVal TheText As String, ByVal CodeLetter As String, Optional Font As Font = Nothing, Optional Price As String = Nothing, Optional ByVal Kind As String = Nothing, Optional ByVal Company As String = Nothing) As Image
ثم تعدل الكود بنهاية الدالة الى هذا الكود
كود :
' رسم النص المراد ترميزه اسفل الكود
If Font Is Nothing Then
Font = New Font("times new roman", 9, FontStyle.Bold)
End If
Dim Font2 = New Font(Font.FontFamily, Font.Size + 3, FontStyle.Bold)
GraphZ.DrawString(TheText, Font, New SolidBrush(Color.Black), 70, 40)
Dim format1 As New StringFormat(StringFormatFlags.NoClip)
format1.Alignment = StringAlignment.Center
GraphZ.DrawString(Kind, Font2, New SolidBrush(Color.Black), 0, 3)
GraphZ.DrawString(Price, Font, New SolidBrush(Color.Black), 0, 40)
GraphZ.DrawString(Company, Font2, New SolidBrush(Color.Black), 0, 50)
الان يمكنك تعيين الخط من داخل النموذج مباشرة
كود :
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
PicBarCode.BackgroundImage = Code128(TextBox3.Text, "A", New Font(ComboBox1.Text.ToString, 9, FontStyle.Bold), TextBox4.Text & " " & "L.E", TextBox2.Text, TextBox1.Text)
End Sub
Private Sub TextBox3_TextChanged(sender As Object, e As EventArgs) Handles TextBox3.TextChanged
PicBarCode.BackgroundImage = Code128(TextBox3.Text, "A", New Font(ComboBox1.Text.ToString, 9, FontStyle.Bold), TextBox4.Text & " " & "L.E", TextBox2.Text, TextBox1.Text)
End Sub
و بالتوفيق