2011-11-23 123 views
1

我想问一些关于组合框和文本框的帮助。所以这里的,我一直在试图找出如何使用组合框的值分配到文本框,这里的问题是它看起来像如何使用组合框在文本框中插入值

If yearlevel.SelectedItem = "Nursery" Then 
    txtamount.Text = "1000" 
    If yearlevel.SelectedItem = "Kinder" Then 
     txtamount.Text = "2000" 
    End If 
End If 

我想发生什么事是,当我选择“托儿所” “1000”会自动出现在文本框中。

+0

你如何绑定到组合框?什么是数据类型? – Oded

回答

1

使用SelectedIndexChanged事件:

Private Sub yearLevel_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles yearLevel.SelectedIndexChanged 
    Select Case yearLevel.SelectedItem.ToString 
     Case "Nursery" : txtAmount.Text = "1000" 
     Case "Kinder" : txtAmount.Text = "2000" 
    End Select 
End Sub 

为了使它更具活力和轻松,当你添加的项目组合框,将其添加为包含文本和量的对象,那么的SelectedIndexChanged在发生,只是铸selectedobject回到自己的对象和使用量的值:

Private Structure YearLevelItemStruct 
    Private _Text As String 
    Private _Amount As Double 
    Public ReadOnly Property Text() As String 
     Get 
      Return Me._Text 
     End Get 
    End Property 
    Public ReadOnly Property Amount() As Double 
     Get 
      Return Me._Amount 
     End Get 
    End Property 
    Public Sub New(ByVal Text As String, ByVal Amount As Double) 
     Me._Text = Text 
     Me._Amount = Amount 
    End Sub 
    Public Overrides Function ToString() As String 
     Return _Text 
    End Function 
End Structure 


Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    loaditems() 
End Sub 
Sub loaditems() 
    yearLevel.Items.Clear() 
     yearLevel.Items.Add(New YearLevelItemStruct("Nursery", 1000)) 
    yearLevel.Items.Add(New YearLevelItemStruct("Kinder", 2000)) 
End Sub 

Private Sub yearLevel_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles yearLevel.SelectedIndexChanged 
    txtAmount.Text = DirectCast(yearLevel.SelectedItem, YearLevelItemStruct).Amount.ToString 
End Sub 

当然,如果你有媒体链接在一些列表或某种物体具有的ToString(的阵列中的所有项目),你不需要创建一个自己的结构来持有这个目标克拉。 如果您的对象没有ToString(),那么您可以使用组合框:s .DisplayMember =“some_property_that_returns_a_string”。因为如果它不暴露ToString(并且您不使用.DisplayMamber),那么组合框将被填充类型的名称而不是文本。

+0

waaaahhh ~~谢谢〜!你是一个拯救生命的人! – trisha0906

+0

我会试试这个,再次感谢你〜! – trisha0906

1
If yearlevel.SelectedItem = "Nursery" Then 
    txtamount.Text = "1000" 
ElseIf yearlevel.SelectedItem = "Kinder" Then 
    txtamount.Text = "2000" 
End If 

如果这不符合您的要求,请详细解释您的问题 。

+0

我已经试过了,它没有工作。我也尝试使用.SelectedText并没有发生任何事情。我在我的组合框中有几个项目,我想要做的是当用户在组合框中选择时,它的等效量将自动出现在文本框 – trisha0906