If I was you, I'd look at going the other way:
Dim Country_id As Integer = Convert.ToString(ComboBox1.SelectedValue.ToString())
fillstate(Country_id)
Is a little...um...odd.
ComboBox1.SelectedValue
May be an integer already, particularly if you have read it directly form the DB. So...
ComboBox1.SelectedValue.ToString()
Makes it a string. So...
Convert.ToString(ComboBox1.SelectedValue.ToString())
Converts the string to...a string...
Dim Country_id As Integer = Convert.ToString(ComboBox1.SelectedValue.ToString())
Then uses an implicit conversion to change it to an integer to pass to your method, which takes an integer...
So, why not just pass the Value as an integer in the first place, or call CInt on it to ensure it is an integer?
Playing "musical chairs" with variable types is just a good way to make your code more confusing and less reliable...