C# 我有一个端口列表框,我不断得到;无法隐式转换类型';int';至';字符串'&引用;

C# 我有一个端口列表框,我不断得到;无法隐式转换类型';int';至';字符串'&引用;,c#,client,bots,irc,C#,Client,Bots,Irc,我在这个加载方法中得到“无法隐式地将类型'int'转换为'string” 这是在查看“选项”页面时加载的选项: private void Options_Load(object sender, EventArgs e) { txtbBotUsername.Text = Properties.Settings.Default.setting_bot_username; txtbBotOAuth.Text = Properties.Settings.Default.setting_b

我在这个加载方法中得到“无法隐式地将类型'int'转换为'string” 这是在查看“选项”页面时加载的选项:

private void Options_Load(object sender, EventArgs e)
{
    txtbBotUsername.Text = Properties.Settings.Default.setting_bot_username;
    txtbBotOAuth.Text = Properties.Settings.Default.setting_bot_oauth_password;
    lstBotPort.Text = Properties.Settings.Default.setting_bot_port; // Error Here
    txtbStreamName.Text = Properties.Settings.Default.setting_stream_name;
    txtbStreamerUsername.Text = Properties.Settings.Default.setting_streamer_username;
    txtbStreamerOAuth.Text = Properties.Settings.Default.setting_streamer_oauth_password;

    chbStartWin.Checked = Properties.Settings.Default.setting_start_windows;
    chbStartMini.Checked = Properties.Settings.Default.setting_start_mini;
    chbCheckUpdates.Checked = Properties.Settings.Default.setting_check_updates_launch;
    chbMiniTray.Checked = Properties.Settings.Default.setting_mini_tray;
    chbCloseTray.Checked = Properties.Settings.Default.setting_close_tray;
    chbAlwaysTop.Checked = Properties.Settings.Default.setting_always_top;
}
我在这个保存方法中得到“无法隐式地将类型'string'转换为'int” 这是单击“保存”按钮的时间

private void btnOptionsSave_Click(object sender, EventArgs e)
{
    Properties.Settings.Default.setting_bot_username = txtbBotUsername.Text;
    Properties.Settings.Default.setting_bot_oauth_password = txtbBotOAuth.Text;
    Properties.Settings.Default.setting_bot_port = lstBotPort.Text;
    Properties.Settings.Default.setting_stream_name = txtbStreamName.Text;
    Properties.Settings.Default.setting_streamer_username = txtbStreamerUsername.Text;
    Properties.Settings.Default.setting_streamer_oauth_password = txtbStreamerOAuth.Text;

    Properties.Settings.Default.setting_start_windows = chbStartWin.Checked;
    Properties.Settings.Default.setting_start_mini = chbStartMini.Checked;
    Properties.Settings.Default.setting_check_updates_launch = chbCheckUpdates.Checked;
    Properties.Settings.Default.setting_mini_tray = chbMiniTray.Checked;
    Properties.Settings.Default.setting_close_tray = chbCloseTray.Checked;
    Properties.Settings.Default.setting_always_top = chbAlwaysTop.Checked;
    Properties.Settings.Default.Save();
    this.Close();
}
您可以看到,这些设置存储在程序设置中,设置“setting_bot_port”设置为INT,默认值为6667

在designer上,我在组合框列表中有3个端口可供选择,它们是6667443,80 该类型需要为INT,因为IRC类仅为端口连接接受INT


任何帮助都将不胜感激,我相信这是我忘记的愚蠢而简单的事情。

只是为了排除一些可能性。。你有没有试过这样的方法:

  Convert.ToInt32( lstBotPort.Text)  

这里的问题是,您试图将整数分配给字符串,反之亦然。读取属性值时,将其指定给文本框时,请使用.ToString()

myTextBox.Text = myProperties.Port.ToString();
当您将端口号保存回“设置”时,您可以


将int赋值给字符串,反之亦然。您需要使用Integer.toString(…)和Integer.valueOf(…)@DiegoBasch包装赋值:这是正确的想法,但这是C#而不是Java。所以你想要
ToString()
int.Parse
@BenVoigt my bad,甚至没有注意到它不是Java:)int.Parse比Convert.ToInt32;)快
mySettings.Port = Convert.ToInt32(myTextBox.Text);