Hej, jag använder en combobox för att byta språk. Det ser ungefär ut som nedan. Problemet är att när man väljer nytt språk blir det tomt i comboboxen, jag vill att det valda språket ska stå, på det nyvalda språket. Testa att lägga till cboSpråk.Refresh efter sista End If-satsen och se om det inte bara är så att skärmen inte hinner uppdateras. har du inte vänt på saker och ting. cboSpråk.RefreshComboBox problem!
T.ex. Det står Svenska och Engelska i comboboxen från början, om man sedan väljer engelska ska det stå English och Swedish i comboboxen efter... Men det står ingenting om man inte ska välja igen...
Hoppas ni förstår, om ni prövar själva får ni se vad jag menar...
<code>
Private Sub cboSpråk_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cboSpråk.SelectedIndexChanged
If Språk = "Svenska Then
cboSpråk.Items.Clear()
cboSpråk.Items.Add("Engelska")
cboSpråk.Items.Add("Svenska")
Else
cboSpråk.Items.Clear()
cboSpråk.Items.Add("English")
cboSpråk.Items.Add("Swedish")
End If
End Sub
</code>
Tack på förhand /AleSv: ComboBox problem!
Sen har du inte med att välja något av alterntiven efter att du bytt ut dessa - det borde du kanske göra.
Ex: cboSpråk.Selecteditem.Value = xSv: ComboBox problem!
Om du testar efter strängen "svenska" så kommer den ju inte hittas eftersom du vänt på begreppen.
<code>
Private Sub cboSpråk_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cboSpråk.SelectedIndexChanged
If Språk = "Svenska" Then ' Borde det inte vara "Swedish" här?
cboSpråk.Items.Clear()
cboSpråk.Items.Add("Engelska")
cboSpråk.Items.Add("Svenska")
Else
cboSpråk.Items.Clear()
cboSpråk.Items.Add("English")
cboSpråk.Items.Add("Swedish")
End If
End Sub
</code>
//Mikael.NETSv: ComboBox problem!
cboSpråk.Selecteditem.Value = x
cboSråk.SelectedValue = x
Tyvärr fungerade inget av dessa.
Variabeln Språk stör inte heller, den skulle lika gärna kunna vara Swedish!
Det är jättelustigt att det inte fungerar...
Jag postar all kod för o se om ni hittar nåt fel:
<code>
Dim Språk As String
'------------------------
Private Sub BytSpråk()
Dim myAssembly As System.Reflection.Assembly
myAssembly = Me.GetType.Assembly
Dim myManager As New System.Resources.ResourceManager(Språk, myAssembly)
lblInställningar.Text = myManager.GetString("lblInställningar")
lblAvsluta.Text = myManager.GetString("lblAvsluta")
GroupBox1.Text = myManager.GetString("GroupBox1")
lblSparasVidAvslut.Text = myManager.GetString("lblSparasVidAvslut")
lblSparasInteVidAvslut.Text = myManager.GetString("lblSparasInteVidAvslut")
chkAutostart.Text = myManager.GetString("chkAutostart")
GroupBox3.Text = myManager.GetString("GroupBox3")
cmdFunktioner.Text = myManager.GetString("cmdFunktioner")
mnuÖppna.Text = myManager.GetString("mnuÖppna")
mnuStäng.Text = myManager.GetString("mnuStäng")
mnuAvsluta.Text = myManager.GetString("mnuAvsluta")
cboSpråk.Items.Clear()
cboSpråk.Items.Add(myManager.GetString("Engelska"))
cboSpråk.Items.Add(myManager.GetString("Svenska"))
'cboSpråk.SelectedValue = 1
'cboSpråk.Refresh()
End Sub
'----------------------
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Språk = GetData("Språk", "Allt I Allo.xml", "Data")
If Språk = "0" Then
Språk = "Svenska"
End If
If Språk = "Svenska" Then
cboSpråk.SelectedIndex = 1
Else
cboSpråk.SelectedIndex = 0
End If
End Sub
'-------------------------
Private Sub cboSpråk_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cboSpråk.SelectedIndexChanged
If cboSpråk.SelectedIndex = 0 Then
Språk = "Engelska"
Else
Språk = "Svenska"
End If
Call BytSpråk()
End Sub
</code>
Mvh /Ale