HeyCHのブログ

慢性疲労のへいちゃんです

【C#】改行がうざいんだが

Visual Studioの改行設定

Visual Studio上でコピペ等をすると

if(true)
{
}
else
{
}

のような感じで過剰に改行が入れられる状態がデフォルトです。
これをどうにかしたい場合、Visual Studioの設定から改行の設定を行う事ができます。

C#の改行設定

  • ツール>オプション
    f:id:HeyCH:20200401225233p:plain
    オプション
  • テキストエディタC#
    f:id:HeyCH:20200401225457p:plain
    C#を開いたところ
  • コードスタイル>書式設定>改行
    f:id:HeyCH:20200401225647p:plain
    改行
  • ☑を全部はずす(お好みで)
    f:id:HeyCH:20200401225952p:plain
    ☑を外す

こうするとストップウォッチのコードが以下のようになります。(Ctrl+A,Ctrl+C,Ctrl+Vで全コピペすれば反映されます)

        public Form1() {
            InitializeComponent();
        }
        DateTime now;
        DateTime startTime;
        BackgroundWorker bw;
        TimeSpan ts;
        enum StopwatchMode {
            Time,
            Stopwatch,
            Pause
        }
        StopwatchMode mode = StopwatchMode.Time;
        private void Form1_Load(object sender, EventArgs e) {
            ts = new TimeSpan(0);
            bw = new BackgroundWorker();
            bw.DoWork += Bw_DoWork;
            bw.RunWorkerAsync();
        }

        private void button1_Click(object sender, EventArgs e) {
            if (button1.Text == "Start") {
                if (mode != StopwatchMode.Pause) {
                    startTime = DateTime.Now;
                } else if (mode == StopwatchMode.Pause) {
                    startTime = DateTime.Now - ts;
                }
                mode = StopwatchMode.Stopwatch;
                button1.Text = "Pause";
            } else {
                mode = StopwatchMode.Pause;
                button1.Text = "Start";
            }
        }
        private void button2_Click(object sender, EventArgs e) {
            mode = StopwatchMode.Time;
            button1.Text = "Start";
        }
        private void Bw_DoWork(object sender, DoWorkEventArgs e) {
            while (true) {
                now = DateTime.Now;
                if (mode == StopwatchMode.Stopwatch) {
                    ts = now - startTime;
                    try {
                        Invoke((MethodInvoker)delegate () {
                            label1.Text = String.Format("{0:D2}:{1:D2}:{2:D2}.{3:D3}", ts.Hours, ts.Minutes, ts.Seconds, ts.Milliseconds);
                        });
                    } catch (Exception ex) { }
                } else if (mode == StopwatchMode.Time) {
                    try {
                        Invoke((MethodInvoker)delegate () {
                            label1.Text = String.Format("{0:D2}:{1:D2}:{2:D2}", now.Hour, now.Minute, now.Second, now.Millisecond);
                        });
                    } catch (Exception ex) { }
                } else if (mode == StopwatchMode.Pause) {
                    //何もしない
                }
            }
        }
        List<TimeSpan> tsl = new List<TimeSpan>();
        private void button3_Click(object sender, EventArgs e) {
            if (mode != StopwatchMode.Stopwatch) return;
            tsl.Add(ts);
            TimeSpan tmp = new TimeSpan(0);
            if (tsl.Count <= 1) {
                tmp = tsl[tsl.Count - 1];
            } else {
                tmp = tsl[tsl.Count - 1] - tsl[tsl.Count - 2];
            }
            DataGridViewTextBoxCell jikoku = new DataGridViewTextBoxCell();
            DataGridViewTextBoxCell laptime = new DataGridViewTextBoxCell();
            jikoku.Value = String.Format("{0:D2}:{1:D2}:{2:D2}.{3:D3}", now.Hour, now.Minute, now.Second, now.Millisecond);
            laptime.Value = String.Format("{0:D2}:{1:D2}:{2:D2}.{3:D3}", tmp.Hours, tmp.Minutes, tmp.Seconds, tmp.Milliseconds);
            DataGridViewRow r = new DataGridViewRow();
            r.Cells.Add(jikoku);
            r.Cells.Add(laptime);
            dataGridView1.Rows.Add(r);
        }