3 回答

TA貢獻2080條經驗 獲得超4個贊
除了從轉換ActionTimerComboBox.SelectedValue為雙倍之外,一切看起來都很好。這也是錯誤信息所說的。您必須使用以下內容:
string comboSelectedValue = ActionTimerComboBox.SelectedValue;
double selectedVal =0.0;
if(double.TryParse(comboSelectedValue, out selectedVal)){
settings.ActionTimer = (int)TimeSpan.FromMinutes(selectedVal).TotalMilliseconds;
Console.WriteLine(TimeSpan.FromMinutes(selectedVal).TotalMilliseconds);
}
else
{
Console.WriteLine("Error in conversion");
}
工作示例在這里。此鏈接可能會幫助您了解有關類型轉換的更多信息。

TA貢獻1943條經驗 獲得超7個贊
ActionTimerComboBox.SelectedValue 正在返回字符串,您不能將其轉換為 double,您應該嘗試使用 double.Parse()、double.TryParse() 或 Convert 類,就像您在此處使用的那樣。- 抱歉無法發表評論

TA貢獻1831條經驗 獲得超10個贊
此異常來自以下聲明:
((double)ActionTimerComboBox.SelectedValue)
對象到雙精度轉換拋出無效的強制轉換異常。要么先將此對象轉換為字符串,然后再將其轉換為雙精度。
((double)ActionTimerComboBox.SelectedValue.toString());
或者,您也可以使用以下代碼:
var val = ActionTimerComboBox.SelectedValue;
if (val is IConvertible)
{
double d = ((IConvertible)val).ToDouble(null);
}
- 3 回答
- 0 關注
- 308 瀏覽
添加回答
舉報