テキストをコピーするアプリケーションを作成します
フォームの作成
上部にタブの名前を変更するテキストボックス、下側にコピー用のテキストボックスを配置します。
テキストコピー用のコード
テキストコピーのコードになります。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;
}
}
コメント