13-06-14, 08:31 AM
(22-12-13, 12:22 PM)scluay كتب : انا اريد اعمل كما في الورد ارقام وهي تمثل حجم الخط وعندي ليبل فيه نص عنده المرور على ال combobox يتغير حجم الخط
.....
منقول من جزء برنامج مع تعديل بسيط ليناسب طلبك
ضع عدد 2 من أداة ComboBox وواحد Label
كود :
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
ComboBox1.DrawMode = DrawMode.OwnerDrawFixed
ComboBox2.DrawMode = DrawMode.OwnerDrawFixed
' ComboBox1 يحتوى أحجام مختلفة للخط
ComboBox1.Items.AddRange(New String() {8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20})
ComboBox1.SelectedIndex = ComboBox1.Text = ComboBox1.Font.Size.ToString
' ComboBox2 يحتوى أسماء مختلفة للخط
ComboBox2.Items.AddRange(New String() {"Tahoma", "MS Sans Serif", "Courier New", "Times New Roman"})
ComboBox2.SelectedIndex = ComboBox2.Text = ComboBox2.Font.Name
End Sub
Private Sub ComboBox_DrawItem(ByVal sender As Object, ByVal e As System.Windows.Forms.DrawItemEventArgs) _
Handles ComboBox1.DrawItem, ComboBox2.DrawItem ' أضف هنا حدث أي مربع سرد له نفس المهمة
e.DrawBackground()
e.DrawFocusRectangle()
Dim format As New StringFormat(StringFormatFlags.NoWrap)
If sender.RightToLeft Then format.FormatFlags += StringFormatFlags.DirectionRightToLeft
e.Graphics.DrawString(sender.Items(e.Index), e.Font, New SolidBrush(e.ForeColor), e.Bounds, format)
'-------------------------------------
' عند المرور على العناصر
ScrollChanged(sender, e.Index)
End Sub
Private Sub ScrollChanged(ByVal comboBox As ComboBox, ByVal index As Integer)
Select Case comboBox.Name
Case "ComboBox1"
Me.Label1.Font = New Font(Me.Label1.Font.Name, comboBox.Items(index), Me.Label1.Font.Style)
Case "ComboBox2"
Me.Label1.Font = New Font(comboBox.Items(index).ToString, Me.Label1.Font.Size, Me.Label1.Font.Style)
End Select
End Sub.....



