だから私は自分のメモを仕事から追跡する簡単なプログラムを作成しています。私が持っているコードは正常に機能しますが、今日はそれを機能させて同じ最終結果を達成する別の方法について考えていました。
現在、ユーザーはすべてをいくつかのテキストボックスに入力し、いくつかのチェックボックスをオンにして、保存ボタンをクリックすると、すべての情報と所定のフォーマットがテキストファイルに入れられ、コピーボタンをクリックすると、テキストファイルが読み取られて notes_view テキストボックスに出力されますそのため、メモが適切にフォーマットされていることを確認でき、クリップボードにもコピーされます。
今私がやりたいことは、ユーザーが各テキストボックスに入力すると、自動的に notes_view テキストボックスに出力され、チェックボックスと同じように (書式設定とテキストの所定の行も維持する必要があります)、次にユーザーファイルを使用して情報を保存することなく、ボタンを 1 つ押すだけでクリップボードにコピーできます。
これが現在の私のプログラムと同じくらい簡単になることを願っていますが、同じ最終結果を得るために別の方法をとっているだけです。
私はC#とプログラミング全般にかなり慣れていないので、これを行う方法とどこから始めるべきかについてのアイデアがあれば教えてください. また、これには基本的にコード全体の書き直しが必要になることも理解しています。
これが私のプログラムの現在の完全なコードです。
public partial class notes_form : Form
{
public notes_form()
{
InitializeComponent();
}
private void save_button_Click(object sender, EventArgs e)
{
//Starts the file writer
using (StreamWriter sw = new StreamWriter("C:\\INET Portal Notes.txt"))
{
string CBRSame = cust_btn_text.Text;
if (cbr_same.Checked)
{
cust_callback_text.Text = CBRSame;
}
//Writes textboxes to the file
sw.WriteLine("**Name: " + cust_name_text.Text);
sw.WriteLine("**BTN: " + cust_btn_text.Text);
sw.WriteLine("**CBR: " + cust_callback_text.Text);
sw.WriteLine("**Modem: " + cust_modem_text.Text);
//Statements to write checkboxes to file
string checkBoxesLine = "**Lights:";
foreach (Control control in pnlCheckBoxes.Controls)
{
if (control is CheckBox)
{
CheckBox checkBox = (CheckBox)control;
if (checkBox.Checked && checkBox.Tag is string)
{
string checkBoxId = (string)checkBox.Tag;
checkBoxesLine += string.Format("{0}, ", checkBoxId);
}
}
}
//Newline for checkboxes
sw.WriteLine(checkBoxesLine);
//Continues textboxes to file
sw.WriteLine("**Troubleshooting: " + tshooting_text.Text);
sw.WriteLine("**Services Offered: " + services_offered_text.Text);
sw.WriteLine("**Other Notes: " + other_notes_text.Text);
sw.Flush();
}
}
//Button that will pull all the text from the text file and then show it in the notes textbox and also push to clipboard
private void generate_button_Click(object sender, EventArgs e)
{
//Loads the reader
StreamReader streamreader = new StreamReader("C:\\INET Portal Notes.txt");
//Reads the text from the INET Portal Notes.txt
notes_view_text.Text = "";
while (!streamreader.EndOfStream)
{
string read_line = streamreader.ReadToEnd();
notes_view_text.Text += read_line + "\n";
}
streamreader.Close();
//Copies text to clipboard for pasting into INET
Clipboard.SetText(notes_view_text.Text);
}
//Button to reset entire form
private void reset_form_button_Click(object sender, EventArgs e)
{
//Reset checkboxes panel
try
{
foreach (Control ctrl in pnlCheckBoxes.Controls)
{
if (ctrl.GetType() == typeof(CheckBox))
((CheckBox)ctrl).Checked = false;
}
//resets textboxes
cust_name_text.Clear();
cust_btn_text.Clear();
cust_callback_text.Clear();
cust_modem_text.Clear();
tshooting_text.Clear();
services_offered_text.Clear();
other_notes_text.Clear();
notes_view_text.Clear();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
}