如何将选定的ComboBox项目保存到.txt文件中

时间:2015-06-10 18:03:38

标签: c# wpf combobox

您好我是编程的新手,我正在尝试使用WPF创建一个C#等级计算器,用户输入他们的成绩,并删除他们的最低成绩2,然后告诉他们他们的整体成绩,我有该部分工作,但我希望它将选定的等级从ComboBoxes保存到一个txt文件,也许能够再次将txt文件加载到成绩计算器。

这是我到目前为止的代码

<Window x:Class="GradeCalculator.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Grade Calculator" Height="779.736" Width="952">
<Grid>
    <Grid.Background>
        <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
            <GradientStop Color="White" Offset="1"/>
            <GradientStop Color="#FFAEF7F7"/>
            <GradientStop Color="#FFD0FAFA" Offset="0.49"/>
        </LinearGradientBrush>
    </Grid.Background>
    <Menu VerticalAlignment="Top" IsMainMenu="True" Margin="0,0,868,0"/>
    <Label Name="Title" Content="Grade Calculator" Margin="366,181,366,0" VerticalAlignment="Top" FontSize="25" HorizontalAlignment="Center" FontWeight="Bold" Width="212"/>
    <TextBlock Name="Information" HorizontalAlignment="Center" Margin="324,223,324,0" TextWrapping="Wrap" Text="Please enter your grades or predicted grades into the drop down menus below" VerticalAlignment="Top" Width="296" FontSize="16" TextAlignment="Center"/>
    <Label Name="Mandatory" Content="Mandatory Units" HorizontalAlignment="Left" Margin="156,273,0,0" VerticalAlignment="Top" Height="28" Width="122" FontSize="14" FontWeight="Bold"/>
    <TextBlock Name="CES" HorizontalAlignment="Left" Margin="12,306,0,0" TextWrapping="Wrap" VerticalAlignment="Top" FontSize="16"><Run Text="Communication and Employability"/><LineBreak/><Run Text="Skills for IT"/></TextBlock>
    <TextBlock Name="CS" HorizontalAlignment="Left" Margin="12,354,0,0" TextWrapping="Wrap" Text="Computer Systems" VerticalAlignment="Top" FontSize="16"/>
    <TextBlock Name="IS" HorizontalAlignment="Left" Margin="12,380,0,0" TextWrapping="Wrap" Text="Information Systems" VerticalAlignment="Top" FontSize="16"/>
    <TextBlock Name="SDD" HorizontalAlignment="Left" Margin="12,406,0,0" TextWrapping="Wrap" Text="Software Design and Development" VerticalAlignment="Top" FontSize="16"/>
    <TextBlock Name="SAD" HorizontalAlignment="Left" Margin="12,432,0,0" TextWrapping="Wrap" Text="Systems Analysis and Design" VerticalAlignment="Top" FontSize="16"/>
    <TextBlock Name="EDP" HorizontalAlignment="Left" Margin="10,462,0,0" TextWrapping="Wrap" Text="Event Driven Programming" VerticalAlignment="Top" FontSize="16"/>
    <ComboBox Name="CESBox" HorizontalAlignment="Left" Margin="288,318,0,0" VerticalAlignment="Top" Width="120">
        <ComboBoxItem Content="Pass" HorizontalAlignment="Left" Width="118"/>
        <ComboBoxItem Content="Merit" HorizontalAlignment="Left" Width="118"/>
        <ComboBoxItem Content="Distinction" HorizontalAlignment="Left" Width="118"/>
    </ComboBox>
    <ComboBox Name="CSBox" HorizontalAlignment="Left" Margin="288,354,0,0" VerticalAlignment="Top" Width="120">
        <ComboBoxItem Content="Pass" HorizontalAlignment="Left" Width="118"/>
        <ComboBoxItem Content="Merit" HorizontalAlignment="Left" Width="118"/>
        <ComboBoxItem Content="Distinction" HorizontalAlignment="Left" Width="118"/>
    </ComboBox>
    <ComboBox Name="ISBox" HorizontalAlignment="Left" Margin="288,462,0,0" VerticalAlignment="Top" Width="120">
        <ComboBoxItem Content="Pass" HorizontalAlignment="Left" Width="118"/>
        <ComboBoxItem Content="Merit" HorizontalAlignment="Left" Width="118"/>
        <ComboBoxItem Content="Distinction" HorizontalAlignment="Left" Width="118"/>
    </ComboBox>
    <ComboBox Name="SDDBox" HorizontalAlignment="Left" Margin="288,381,0,0" VerticalAlignment="Top" Width="120">
        <ComboBoxItem Content="Pass" HorizontalAlignment="Left" Width="118"/>
        <ComboBoxItem Content="Merit" HorizontalAlignment="Left" Width="118"/>
        <ComboBoxItem Content="Distinction" HorizontalAlignment="Left" Width="118"/>
    </ComboBox>
    <ComboBox Name="SADBox" HorizontalAlignment="Left" Margin="288,408,0,0" VerticalAlignment="Top" Width="120">
        <ComboBoxItem Content="Pass" HorizontalAlignment="Left" Width="118"/>
        <ComboBoxItem Content="Merit" HorizontalAlignment="Left" Width="118"/>
        <ComboBoxItem Content="Distinction" HorizontalAlignment="Left" Width="118"/>
    </ComboBox>
    <ComboBox Name="EDPBox" HorizontalAlignment="Left" Margin="288,435,0,0" VerticalAlignment="Top" Width="120">
        <ComboBoxItem Content="Pass" HorizontalAlignment="Left" Width="118"/>
        <ComboBoxItem Content="Merit" HorizontalAlignment="Left" Width="118"/>
        <ComboBoxItem Content="Distinction" HorizontalAlignment="Left" Width="118"/>
    </ComboBox>
    <Label Name="Optional" Content="Optional Units" HorizontalAlignment="Left" Margin="644,273,0,0" VerticalAlignment="Top" Height="28" Width="118" FontSize="14" FontWeight="Bold"/>
    <TextBlock Name="MN" HorizontalAlignment="Left" Margin="480,301,0,0" TextWrapping="Wrap" VerticalAlignment="Top" FontSize="16"><Run Text="Managing Network"/><Run Text="s"/></TextBlock>
    <TextBlock Name="CN" HorizontalAlignment="Left" Margin="480,327,0,0" TextWrapping="Wrap" Text="Computer Networks" VerticalAlignment="Top" FontSize="16" Height="22"/>
    <TextBlock Name="CT" HorizontalAlignment="Left" Margin="480,354,0,0" TextWrapping="Wrap" Text="Communication Technologies" VerticalAlignment="Top" FontSize="16" Height="22"/>
    <TextBlock Name="ITTS" HorizontalAlignment="Left" Margin="480,381,0,0" TextWrapping="Wrap" Text="IT Technical Support" VerticalAlignment="Top" FontSize="16" Height="22"/>
    <TextBlock Name="ITTSTR" HorizontalAlignment="Left" Margin="480,408,0,0" TextWrapping="Wrap" Text="IT Systems and Troubleshooting and Repair" VerticalAlignment="Top" FontSize="16" Height="22"/>
    <TextBlock Name="PPIT" HorizontalAlignment="Left" Margin="480,435,0,0" TextWrapping="Wrap" Text="Project Planning with IT" VerticalAlignment="Top" FontSize="16" Height="22"/>
    <TextBlock Name="DB" HorizontalAlignment="Left" Margin="480,462,0,0" TextWrapping="Wrap" Text="Database Design" VerticalAlignment="Top" FontSize="16" Height="22"/>
    <TextBlock Name="CSCWP" HorizontalAlignment="Left" Margin="480,489,0,0" TextWrapping="Wrap" Text="Client Side Customisation of Web Pages" VerticalAlignment="Top" FontSize="16" Height="22"/>
    <TextBlock Name="DCG" HorizontalAlignment="Left" Margin="480,516,0,0" TextWrapping="Wrap" Text="Developing Computer Games" VerticalAlignment="Top" FontSize="16" Height="22"/>
    <TextBlock Name="WSS" HorizontalAlignment="Left" Margin="480,543,0,0" TextWrapping="Wrap" Text="Web Server Scripting" VerticalAlignment="Top" FontSize="16" Height="22"/>
    <TextBlock Name="WP" HorizontalAlignment="Left" Margin="480,570,0,0" TextWrapping="Wrap" Text="Website Production" VerticalAlignment="Top" FontSize="16" Height="22"/>
    <TextBlock Name="DG" HorizontalAlignment="Left" Margin="480,597,0,0" TextWrapping="Wrap" Text="Digital Graphics" VerticalAlignment="Top" FontSize="16" Height="22"/>
    <TextBlock Name="NSS" HorizontalAlignment="Left" Margin="480,624,0,0" TextWrapping="Wrap" VerticalAlignment="Top" FontSize="16" Height="22"><Run Text="Network Systems Secur"/><Run Text="i"/><Run Text="ty"/></TextBlock>
    <TextBlock Name="WAIM" HorizontalAlignment="Left" Margin="480,651,0,0" TextWrapping="Wrap" VerticalAlignment="Top" FontSize="16" Height="22"><Run Text="Web Animation for Interactive Med"/><Run Text="i"/><Run Text="a"/></TextBlock>
    <ComboBox Name="MNBox" HorizontalAlignment="Left" Margin="798,300,0,0" VerticalAlignment="Top" Width="120">
        <ComboBoxItem Content="Fail" HorizontalAlignment="Left" Width="118"/>
        <ComboBoxItem Content="Pass" HorizontalAlignment="Left" Width="118"/>
        <ComboBoxItem Content="Merit" HorizontalAlignment="Left" Width="118"/>
        <ComboBoxItem Content="Distinction" HorizontalAlignment="Left" Width="118"/>
    </ComboBox>
    <ComboBox Name="CNBox" HorizontalAlignment="Left" Margin="798,327,0,0" VerticalAlignment="Top" Width="120">
        <ComboBoxItem Content="Fail" HorizontalAlignment="Left" Width="118"/>
        <ComboBoxItem Content="Pass" HorizontalAlignment="Left" Width="118"/>
        <ComboBoxItem Content="Merit" HorizontalAlignment="Left" Width="118"/>
        <ComboBoxItem Content="Distinction" HorizontalAlignment="Left" Width="118"/>
    </ComboBox>
    <ComboBox Name="CTBox" HorizontalAlignment="Left" Margin="798,354,0,0" VerticalAlignment="Top" Width="120">
        <ComboBoxItem Content="Fail" HorizontalAlignment="Left" Width="118"/>
        <ComboBoxItem Content="Pass" HorizontalAlignment="Left" Width="118"/>
        <ComboBoxItem Content="Merit" HorizontalAlignment="Left" Width="118"/>
        <ComboBoxItem Content="Distinction" HorizontalAlignment="Left" Width="118"/>
    </ComboBox>
    <ComboBox Name="ITTSBox" HorizontalAlignment="Left" Margin="798,381,0,0" VerticalAlignment="Top" Width="120">
        <ComboBoxItem Content="Fail" HorizontalAlignment="Left" Width="118"/>
        <ComboBoxItem Content="Pass" HorizontalAlignment="Left" Width="118"/>
        <ComboBoxItem Content="Merit" HorizontalAlignment="Left" Width="118"/>
        <ComboBoxItem Content="Distinction" HorizontalAlignment="Left" Width="118"/>
    </ComboBox>
    <ComboBox Name="ITTSTRBox" HorizontalAlignment="Left" Margin="798,408,0,0" VerticalAlignment="Top" Width="120">
        <ComboBoxItem Content="Fail" HorizontalAlignment="Left" Width="118"/>
        <ComboBoxItem Content="Pass" HorizontalAlignment="Left" Width="118"/>
        <ComboBoxItem Content="Merit" HorizontalAlignment="Left" Width="118"/>
        <ComboBoxItem Content="Distinction" HorizontalAlignment="Left" Width="118"/>
    </ComboBox>
    <ComboBox Name="PPITBox" HorizontalAlignment="Left" Margin="798,435,0,0" VerticalAlignment="Top" Width="120">
        <ComboBoxItem Content="Fail" HorizontalAlignment="Left" Width="118"/>
        <ComboBoxItem Content="Pass" HorizontalAlignment="Left" Width="118"/>
        <ComboBoxItem Content="Merit" HorizontalAlignment="Left" Width="118"/>
        <ComboBoxItem Content="Distinction" HorizontalAlignment="Left" Width="118"/>
    </ComboBox>
    <ComboBox Name="DBBox" HorizontalAlignment="Left" Margin="798,462,0,0" VerticalAlignment="Top" Width="120">
        <ComboBoxItem Content="Fail" HorizontalAlignment="Left" Width="118"/>
        <ComboBoxItem Content="Pass" HorizontalAlignment="Left" Width="118"/>
        <ComboBoxItem Content="Merit" HorizontalAlignment="Left" Width="118"/>
        <ComboBoxItem Content="Distinction" HorizontalAlignment="Left" Width="118"/>
    </ComboBox>
    <ComboBox Name="CSCWPBox" HorizontalAlignment="Left" Margin="798,489,0,0" VerticalAlignment="Top" Width="120">
        <ComboBoxItem Content="Fail" HorizontalAlignment="Left" Width="118"/>
        <ComboBoxItem Content="Pass" HorizontalAlignment="Left" Width="118"/>
        <ComboBoxItem Content="Merit" HorizontalAlignment="Left" Width="118"/>
        <ComboBoxItem Content="Distinction" HorizontalAlignment="Left" Width="118"/>
    </ComboBox>
    <ComboBox Name="DCGBox" HorizontalAlignment="Left" Margin="798,516,0,0" VerticalAlignment="Top" Width="120">
        <ComboBoxItem Content="Fail" HorizontalAlignment="Left" Width="118"/>
        <ComboBoxItem Content="Pass" HorizontalAlignment="Left" Width="118"/>
        <ComboBoxItem Content="Merit" HorizontalAlignment="Left" Width="118"/>
        <ComboBoxItem Content="Distinction" HorizontalAlignment="Left" Width="118"/>
    </ComboBox>
    <ComboBox Name="WSSBox" HorizontalAlignment="Left" Margin="798,543,0,0" VerticalAlignment="Top" Width="120">
        <ComboBoxItem Content="Fail" HorizontalAlignment="Left" Width="118"/>
        <ComboBoxItem Content="Pass" HorizontalAlignment="Left" Width="118"/>
        <ComboBoxItem Content="Merit" HorizontalAlignment="Left" Width="118"/>
        <ComboBoxItem Content="Distinction" HorizontalAlignment="Left" Width="118"/>
    </ComboBox>
    <ComboBox Name="WPBox" HorizontalAlignment="Left" Margin="798,570,0,0" VerticalAlignment="Top" Width="120">
        <ComboBoxItem Content="Fail" HorizontalAlignment="Left" Width="118"/>
        <ComboBoxItem Content="Pass" HorizontalAlignment="Left" Width="118"/>
        <ComboBoxItem Content="Merit" HorizontalAlignment="Left" Width="118"/>
        <ComboBoxItem Content="Distinction" HorizontalAlignment="Left" Width="118"/>
    </ComboBox>
    <ComboBox Name="DGBox" HorizontalAlignment="Left" Margin="798,597,0,0" VerticalAlignment="Top" Width="120">
        <ComboBoxItem Content="Fail" HorizontalAlignment="Left" Width="118"/>
        <ComboBoxItem Content="Pass" HorizontalAlignment="Left" Width="118"/>
        <ComboBoxItem Content="Merit" HorizontalAlignment="Left" Width="118"/>
        <ComboBoxItem Content="Distinction" HorizontalAlignment="Left" Width="118"/>
    </ComboBox>
    <ComboBox Name="NSSBox" HorizontalAlignment="Left" Margin="798,624,0,0" VerticalAlignment="Top" Width="120">
        <ComboBoxItem Content="Fail" HorizontalAlignment="Left" Width="118"/>
        <ComboBoxItem Content="Pass" HorizontalAlignment="Left" Width="118"/>
        <ComboBoxItem Content="Merit" HorizontalAlignment="Left" Width="118"/>
        <ComboBoxItem Content="Distinction" HorizontalAlignment="Left" Width="118"/>
    </ComboBox>
    <ComboBox Name="WAIMBox" HorizontalAlignment="Left" Margin="798,651,0,0" VerticalAlignment="Top" Width="120">
        <ComboBoxItem Content="Fail" HorizontalAlignment="Left" Width="118"/>
        <ComboBoxItem Content="Pass" HorizontalAlignment="Left" Width="118"/>
        <ComboBoxItem Content="Merit" HorizontalAlignment="Left" Width="118"/>
        <ComboBoxItem Content="Distinction" HorizontalAlignment="Left" Width="118"/>
    </ComboBox>
    <Button Name="SubButton" Content="Submit" HorizontalAlignment="Left" Margin="396,686,0,0" VerticalAlignment="Top" Click="Button_Click" Width="130" Height="38" FontSize="18"/>
    <Image Margin="324,0,298,541" Source="BSDC.png" Stretch="Fill"/>
    <Label Name="TotalGrade" Content="" HorizontalAlignment="Left" Margin="104,597,0,0" VerticalAlignment="Top" Height="49" Width="225" FontSize="30"/>
    <Label Name="TotalScore" Content="" HorizontalAlignment="Left" Margin="104,534,0,0" VerticalAlignment="Top" Height="49" Width="225" FontSize="30"/>
    <Button Name="SaveButton" Content="Save Grades" HorizontalAlignment="Left" Margin="12,10,0,0" VerticalAlignment="Top" Click="SaveButt_Click" Width="75"/>
</Grid>

    public MainWindow()
    {
        InitializeComponent();
    }

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        int total = 0;

        total += GetGrade(CESBox);
        total += GetGrade(CSBox);
        total += GetGrade(ISBox);
        total += GetGrade(SDDBox);
        total += GetGrade(SADBox);
        total += GetGrade(EDPBox);
        total += GetGrade(MNBox);
        total += GetGrade(CNBox);
        total += GetGrade(CTBox);
        total += GetGrade(ITTSBox);
        total += GetGrade(ITTSTRBox);
        total += GetGrade(PPITBox);
        total += GetGrade(DBBox);
        total += GetGrade(CSCWPBox);
        total += GetGrade(DCGBox);
        total += GetGrade(WSSBox);
        total += GetGrade(WPBox);
        total += GetGrade(DGBox);
        total += GetGrade(NSSBox);
        total += GetGrade(WAIMBox);
        total -= lowGrade1;
        total -= lowGrade2;

        if (total >= 1300 && total <= 1339)
        {
            grade = "MPP";
        }
        if (total >= 1340 && total <= 1379)
        {
            grade = "MMP";
        }
        if (total >= 1380 && total <= 1419)
        {
            grade = "MMM";
        }
        if (total >= 1420 && total <= 1459)
        {
            grade = "DMM";
        }
        if (total >= 1460 && total <= 1499)
        {
            grade = "DDM";
        }
        if (total >= 1500 && total <= 1529)
        {
            grade = "DDD";
        }
        if (total >= 1530 && total <= 1559)
        {
            grade = "D*DD";
        }
        if (total >= 1560 && total <= 1589)
        {
            grade = "D*D*D";
        }
        if (total >= 1590)
        {
            grade = "D*D*D*";
        }

        TotalScore.Content = "Score = " + total;
        TotalGrade.Content = "Grade = " + grade;
    }

    public int GetGrade(ComboBox cbContent)
    {
        int score = 0;

        ComboBoxItem cbContentSelectedItem = cbContent.SelectedItem as ComboBoxItem;
        if (cbContentSelectedItem != null)
        {
            if ((string)cbContentSelectedItem.Content == "Fail")
            {
                if (lowGrade1 > 0)
                {
                    lowGrade1 = 0;
                }
                else if (lowGrade2 > 0)
                {
                    lowGrade2 = 0;
                }
                score = 0;
            }
            if ((string)cbContentSelectedItem.Content == "Pass")
            {
                if (lowGrade1 > 70)
                {
                    lowGrade1 = 70;
                }
                else if (lowGrade2 > 70)
                {
                    lowGrade2 = 70;
                }
                score = 70;
            }
            if ((string)cbContentSelectedItem.Content == "Merit")
            {
                if (lowGrade1 > 80)
                {
                    lowGrade1 = 80;
                }
                else if (lowGrade2 > 80)
                {
                    lowGrade2 = 80;
                }
                score = 80;
            }
            if ((string)cbContentSelectedItem.Content == "Distinction")
            {
                if (lowGrade1 > 90)
                {
                    lowGrade1 = 90;
                }
                else if (lowGrade2 > 90)
                {
                    lowGrade2 = 90;
                }
                score = 90;
            }
        }
        return score;
    }

    private void SaveButt_Click(object sender, RoutedEventArgs e)
    {

    }
}

}

1 个答案:

答案 0 :(得分:0)

如果您在访问C:\时遇到问题,那么您的应用就会遇到许可问题。

尝试创建一个新文件夹“C:\ Test”并尝试在那里写。或以管理员身份启动visual studio。还包括文件名

public partial class MainWindow : Window 
{ 
    public MainWindow() 
    { 
          InitializeComponent(); 
    } 
    private void SaveButt_Click(object sender, RoutedEventArgs e) 
    {           
          File.WriteAllText("C:\\file.txt", "Hello World!"); 
    } 
}

另请查看此link了解详情