请原谅,我很欣赏这有点基本。
XAML.CS
Double D;
D = Convert.ToInt32(Diameter.Text);
D = int.Parse(Diameter.Text);
Double R;
R = (D / 2);
Double A;
A = (R * R * (Math.PI));
Double M;
M = Convert.ToInt32(Mass.Text);
M = int.Parse(Mass.Text);
float g;
g = 9.81f;
float P;
P = Convert.ToInt32(Pressure.Text);
P = int.Parse(Pressure.Text);
float Ol1;
Ol1 = Convert.ToInt32(OilLevel.Text);
Ol1 = int.Parse(OilLevel.Text);
Double V1;
V1 = ((Math.PI) * R * R * Ol1);
float K1;
K1 = Convert.ToInt32(SpringRate.Text);
K1 = int.Parse(SpringRate.Text);
Double Pr1;
Pr1 = Convert.ToInt32(InitialPreload.Text);
Pr1 = Convert.ToInt32(Preload.Text);
Pr1 = (Convert.ToInt32(InitialPreload.Text) + Convert.ToInt32(Preload.Text));
InitializeComponent();
第二行(D = Convert.ToInt32(Diameter.Text))抛出错误。
下面是保存文本框
的xaml代码XAML
<StackPanel>
<TextBlock Margin = "10 10" Text="Spring Force Calculator" HorizontalAlignment="Center" FontWeight="Bold" FontSize="22"/>
<TextBlock Margin = "10 10" Text="Mass - Kg" FontSize="18"/>
<TextBox x:Name="Mass" Margin="10 10" Text="165"/>
<TextBlock Margin = "10 10" Text="Initial Pressure - Bar" FontSize="18"/>
<TextBox x:Name="Pressure" Margin="10 10" Text="1"/>
<TextBlock Margin = "10 10" Text="Internal Fork Diameter - mm" FontSize="18"/>
<TextBox x:Name="Diameter" Margin="10 10" Text="46"/>
<TextBlock Margin = "10 10" Text="Internal Fork Area - mm²" FontSize="18"/>
<TextBox x:Name="Area" Margin="10 10"/>
<TextBlock Margin = "10 10" Text="Spring Rate - N/m" FontSize="18"/>
<TextBox x:Name="SpringRate" Margin="10 10" Text="9"/>
<TextBlock Margin = "10 10" Text="Installed Preload - mm" FontSize="18"/>
<TextBox x:Name="InitialPreload" Margin="10 10" Text="10"/>
<TextBlock Margin = "10 10" Text="Preload - mm" FontSize="18"/>
<TextBox x:Name="Preload" Margin="10 10" Text="6"/>
<TextBlock Margin = "10 10" Text="Oil Level - mm" FontSize="18"/>
<TextBox x:Name="OilLevel" Margin="10 10" Text=".133"/>
<TextBlock Margin = "10 10" Text="Maximum Allowable Travel - mm" FontSize="18"/>
<TextBox x:Name="MaxATravel" Margin="10 10" Text="115"/>
<TextBlock Margin = "10 10" Text="Maximum Calculated Travel - mm" FontSize="18"/>
<TextBox x:Name="MaxCTravel" Margin="10 10"/>
</StackPanel>
我知道我必须遗漏一些基本的东西,而且对训练有素的眼睛来说相当明显。我应该注意到,这是我第一次尝试编程并尝试学习(也许不是最好的主意)。
对于初学者问题再次抱歉,请帮忙!
由于 JORD
答案 0 :(得分:1)
问题是您的组件尚未初始化,并且在初始化之前访问驻留在此组件中的控件。解决方案是引入这一行:
InitializeComponent();
作为MainWindow
方法的第一行。作为旁注,正如我已经做过的那样,我认为您没有理由同时使用Convert.ToInt32
和Int.Parse
。解析应该只进行一次。此外,我建议您查找int.TryParse
方法,因为这样可以避免在解析过程中出现任何异常。您可以从here开始。