直列つなぎ。 -とある発達障害者の記録

知識と知識を繋ぐためのblog。 広汎性発達と診断されました。ぜんぜん役に立ってないけど。月収13万円、家賃4万円で生活するひつじ人間。

C# 付箋ソフト制作 これまでの成果


 結構スパゲッティコードになってきたので整理したいと思っている。
 ctrl+Fで対応してるが、探すのが面倒になって来たなー。

 挙動をログった動画
  



 以前の成果:RichTextBox内の文字フォントや文字色を部分的に変える

 今回の成果
  windowサイズ変更時のrichTextBoxのサイズを追従させるようにした
  10秒ごとに自動保存を何回も繰り返し行うようにした。
  
  
       
private void Form1_SizeChanged(object sender, EventArgs e)
        {
           
            if (FormBorderStyle == FormBorderStyle.None)
            {
                panel1.Width = Width;
                richTextBox1.SetBounds(0, 17, Bounds.Width, Bounds.Height - 15);


            }
            if (FormBorderStyle == FormBorderStyle.Sizable)
            {
                panel1.Width = Width;
                richTextBox1.SetBounds(0, 17, Bounds.Width , Bounds.Height - 15);

            }
            richTextBox1.Focus();

        }

 ウィンドウタイトルの表示・非表示切り替えの関係で、調整がかなり面倒だった。

 EnumerateWindowを使った最背面の実装は見送った。
 現状、Aero化(透明化)の抑止が出来ないため。
 

10秒ごとに自動保存を何回も繰り返し行う(カウントダウン処理)

 

   private async void sleepAsync()
        {
            restTimeInt = 10;
            while (restTimeInt != 0)
            {
               await Task.Delay(1000);

                restTimeInt--;


                restTime = restTimeInt.ToString();

                this.Text = "残り:" + restTime + "秒";
            }


            WriteFile();
            // restTimeInt = 10;
            if (restTimeInt == 0)
            { sleepAsync(); //再帰呼び出し }

        }

 少々悩んだが、単純に再帰的呼び出しを行うだけで出来た。
 return とかbreakとか使うんじゃないかなーと最初は思ってた。



 かなりいい加減なプロジェクトファイル(visual Studio 2015)
 https://box.yahoo.co.jp/guest/viewer?sid=box-l-jjsgnkx53gwi3lt2r7nmvpbfvm-1001&uniqid=67646186-48ee-4041-bece-83829582b41c&viewtype=detail

 Mynotepad\WindowsFormsApplication20\bin\Debug
 に実行ファイルWindowsFormsApplication20.exe があります。
 そのままアプリとして使う事も可能です(そんな人いないだろうけど)。 



 今後の目標 
 透過(Aero化)ナシでwindowを最背面に移したい
 Windows + D キーを無効化(キャンセル)したい
 
 Sticky Noteそっくりに作りたい
関連記事
スポンサーサイト

 Category: None

0 Comments

Leave a comment