私はカスタム 'コンボボックス'を持っています。私はアラビア語を使用しています。右から左へ、デフォルトのコンボボックスではプロパティから変更できますが、このカスタム 'コンボボックス'変更されていないので、クラスを右から左に変更するにはどうすればよいですか?右から左へのコンボボックスアイテム
これは私が使用しているものです:
Class AdvancedComboBox
Inherits ComboBox
Public Shadows Property DrawMode() As System.Windows.Forms.DrawMode
Get
Return m_DrawMode
End Get
Set
m_DrawMode = Value
End Set
End Property
Private Shadows m_DrawMode As System.Windows.Forms.DrawMode
Public Property HighlightColor() As Color
Get
Return m_HighlightColor
End Get
Set
m_HighlightColor = Value
End Set
End Property
Private m_HighlightColor As Color
Public Sub New()
MyBase.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed
Me.HighlightColor = Color.Orange
AddHandler Me.DrawItem, New DrawItemEventHandler(AddressOf AdvancedComboBox_DrawItem)
End Sub
Private Sub AdvancedComboBox_DrawItem(sender As Object, e As DrawItemEventArgs)
If e.Index < 0 Then
Return
End If
Dim combo As ComboBox = TryCast(sender, ComboBox)
If (e.State And DrawItemState.Selected) = DrawItemState.Selected Then
e.Graphics.FillRectangle(New SolidBrush(HighlightColor), e.Bounds)
Else
e.Graphics.FillRectangle(New SolidBrush(combo.BackColor), e.Bounds)
End If
e.Graphics.DrawString(combo.Items(e.Index).ToString(), e.Font, New SolidBrush(combo.ForeColor), New Point(e.Bounds.X, e.Bounds.Y))
e.DrawFocusRectangle()
End Sub
End Class
はあなたにその完璧に感謝していますが、私は完全な素晴らしいことだろうと私を助けることができれば小さなことがありますArabic1のように3つの単語がある場合は、カスタム 'コンボボックス'で、ユーザータイプとして表示され、データベースに保存されているアラビア語と英語のユーザータイプを入力すると、デフォルトのコンボボックス(コンボボックス) English Arabic2データベースでは、カスタム 'combobox'のように表示されます:Arabic2 English Arabic1。私は謝罪します。 ちなみに、私は2行の値を1行で表示しています。 'ComboBox2.Items.Add(String.Format(" {0} |({1}) "、p_id、p_name))' –
@Rabeeaqabaha私は、私はあなたのコメントで尋ねているものと闘っている。 3つの項目が必要な場合は、 'String.Format(" {0} {1} {2} "、p_id、p_name、p_other)'になりますが、それはあなたが直面している問題ではないと思われます。 – LarsTech
私の問題は、テキストが適切に構造化されていないということです。例: アラビア語で3ワード、英語で1ワードをデータベースに追加すると、 '[word1(Arabic1)word2(English)word3(Arabic2)]] '、 'combobox'はこのように表示されました' [word3(Arabic2)word2(English)word1(Arabic1)] ' –