気軽に遊べるミニゲームを制作しています

iPhone, iPad専用

【c# WPF道場】XMLを使ってショートカットツールを作成する

WPF

テキストをコピーするアプリケーションを作成します

フォームの作成

上部にタブの名前を変更するテキストボックス、下側にコピー用のテキストボックスを配置します。

テキストコピー用のコード

テキストコピーのコードになります。Clipboard.SetTextを使って、テキストボックスの文字列をコピーします。

        private void TxtCopyBtn1_Click(object sender, RoutedEventArgs e)
        {
            TxtCopy(Txt1.Text);
        }

        private void TxtCopy(string txt)
        {
            Clipboard.SetText(txt);
            MessageBox.Show("コピーしました");
        }

XMLでテキストデータを保存する

タブごとにテキストデータを保存します。アプリケーション終了時に保存用の関数を実行します。

        public class TextData
        {
            public object TabName { get; set; }  //タブの名前
            public string TxtName1 { get; set; }  //テキストの名前
            public string TxtName2 { get; set; }
            public string Txt1 { get; set; }  //コピーするテキスト
            public string Txt2 { get; set; }
        }

        private void SaveXml()
        {
            List<TextData> list = new List<TextData>
            {
                new TextData() {
                    TabName = TabName1.Header,
                    TxtName1 = NameTxt1.Text,
                    TxtName2 = NameTxt2.Text
                    Txt1 = Txt1.Text,
                    Txt2 = Txt2.Text
                },
                new TextData() {
                    TabName = TabName2.Header,
                    TxtName1 = NameTxt5.Text,
                    TxtName2 = NameTxt6.Text
                    Txt1 = Txt5.Text,
                    Txt2 = Txt6.Text
                }
            };

            XmlSerializer serializer = new XmlSerializer(typeof(List<TextData>));
            using (StreamWriter writer = new StreamWriter(@"C:\Users\eggam\Desktop\xmlData\data.xml"))
            {
                serializer.Serialize(writer, list);
            }
        }

        private void App_Closed(object sender, EventArgs e)
        {
            SaveXml();
        }

データを読み込む

アプリケーション起動時にデータを読み込みます。

        public MainWindow()
        {
            InitializeComponent();
            LoadXml();  //起動時にデータをよみこむ
        }

        private void LoadXml()
        {
                XmlSerializer serializer = new XmlSerializer(typeof(List<TextData>));
                using (StreamReader reader = new StreamReader(@"C:\Users\eggam\Desktop\xmlData\data.xml"))
                {
                    List<TextData> list = (List<TextData>)serializer.Deserialize(reader);

                    TabName1.Header = list[0].TabName;
                    NameTxt1.Text = list[0].TxtName1;
                    NameTxt2.Text = list[0].TxtName2;
                    Txt1.Text = list[0].Txt1;
                    Txt2.Text = list[0].Txt2;

                    TabName2.Header = list[1].TabName;
                    NameTxt5.Text = list[1].TxtName1;
                    NameTxt6.Text = list[1].TxtName2;
                    Txt5.Text = list[1].Txt1;
                    Txt6.Text = list[1].Txt2;
                }
        }

コメント

タイトルとURLをコピーしました