Esempio n. 1
0
        /// <summary>
        /// 完了タスクの表示を切り替える
        /// </summary>
        /// <param name="panel">タスクが記載されているパネルコントロール</param>
        /// <param name="completeTaskStyle">タスク完了時の表示方法</param>
        private void ChangeCompleteTaskStyle(Panel panel, TodoManager.CompleteTaskShowStyle completeTaskStyle)
        {
            // 完了タスク表示にする(要は打ち消し線を追加し、背景色を変える)
            foreach (Control control in panel.Controls)
            {
                if (control.Tag == null)
                {
                    // tagが設定されていない場合はnullとなるので次のコントロールに変更する
                    continue;
                }
                else if (control.Tag.ToString() == "CountDown")
                {
                    control.Font = new Font("メイリオ", 9, FontStyle.Strikeout);
                }
                else if (control.Tag.ToString() == "DeadLine")
                {
                    control.Font = new Font("メイリオ", 8, FontStyle.Strikeout);
                }
                else if (control.Tag.ToString() == "Contents")
                {
                    control.Font = new Font("メイリオ", 9, FontStyle.Strikeout);
                }
            }

            // 背景色を変える
            panel.BackColor = DeletedBGColor;
            panel.Visible   = (completeTaskStyle == TodoManager.CompleteTaskShowStyle.Hidden) ? false : true;
        }
Esempio n. 2
0
        /// <summary>
        /// Todoデータを作成する
        /// </summary>
        /// <param name="data">作成に必要なTodoデータ</param>
        /// <param name="completeTaskStyle">完了タスクの表示方法</param>
        /// <param name="modify">修正ボタンを押した際の挙動(フォーム部分の変更を行う受け取る)</param>
        /// <returns>PanelにTodoデータを載せてそれを返す</returns>
        public Panel Create(TodoManager.DataType data, TodoManager.CompleteTaskShowStyle completeTaskStyle, Action <string, string, string> modify)
        {
            // 修正ボタンを押した際に、このメソッドを使うとフォームの変更が行える
            this.modify = modify;

            // 何日後?
            Label lblCountDown = new Label();

            if (data.ToBeDetermined)
            {
                lblCountDown.Text = "未定…";
            }
            else
            {
                int countdown = (data.Deadline - DateTime.Today).Days;
                if (countdown == 0)
                {
                    lblCountDown.ForeColor = Color.Blue;
                    lblCountDown.Text      = "本日期限";
                }
                else if (countdown < 0)
                {
                    lblCountDown.ForeColor = Color.Red;
                    lblCountDown.Text      = string.Format("{0}日遅延", Math.Abs(countdown).ToString());
                }
                else
                {
                    lblCountDown.Text = string.Format("{0}日後", countdown.ToString());
                }
            }

            lblCountDown.AutoSize    = true;
            lblCountDown.Location    = new Point(5, 5);
            lblCountDown.Tag         = "CountDown";
            lblCountDown.MouseEnter += new System.EventHandler(this.Label_MouseEnter);
            lblCountDown.MouseLeave += new System.EventHandler(this.Label_MouseLeave);
            lblCountDown.Click      += new System.EventHandler(this.LblTodoDeleteClick);

            // 修正ボタン
            Button btnModify = new Button();

            btnModify.AutoSize  = false;
            btnModify.BackColor = Color.FromArgb(150, 150, 150);
            btnModify.FlatStyle = FlatStyle.Flat;
            btnModify.Font      = new Font("メイリオ", 8);
            btnModify.ForeColor = Color.White;
            btnModify.Location  = new Point(5, 25);
            btnModify.Size      = new Size(50, 25);
            //// btnModify.Tag = "ModifyButton"; // Tagは、別なところで使っているため指定したらだめ
            btnModify.Text        = "修正";
            btnModify.Visible     = false;
            btnModify.MouseEnter += new System.EventHandler(this.Label_MouseEnter);
            btnModify.MouseLeave += new System.EventHandler(this.Label_MouseLeave);
            btnModify.Click      += new EventHandler(this.BtnModify_Click);

            // DeadLine
            Label lblDeadLine = new Label();

            lblDeadLine.AutoSize    = true;
            lblDeadLine.ForeColor   = Color.FromArgb(150, 150, 150);
            lblDeadLine.Location    = new Point(635, 30);
            lblDeadLine.Tag         = "DeadLine";
            lblDeadLine.Text        = data.ToBeDetermined ? string.Empty : data.Deadline.ToString("yyyy-MM-dd(ddd)");
            lblDeadLine.MouseEnter += new System.EventHandler(this.Label_MouseEnter);
            lblDeadLine.MouseLeave += new System.EventHandler(this.Label_MouseLeave);
            lblDeadLine.Click      += new System.EventHandler(this.LblTodoDeleteClick);

            // Contents
            Label lblContents = new Label();

            lblContents.AutoSize    = false;
            lblContents.Location    = new Point(Todo.LblContentsLeft, 5);
            lblContents.Size        = new Size(660, 40); // 555,40
            lblContents.Tag         = "Contents";
            lblContents.Text        = data.Contents;
            lblContents.Click      += new System.EventHandler(this.LblTodoDeleteClick);
            lblContents.MouseEnter += new System.EventHandler(this.Label_MouseEnter);
            lblContents.MouseLeave += new System.EventHandler(this.Label_MouseLeave);

            // CreateTime
            Label lblCreateTime = new Label();

            lblCreateTime.Text    = data.CreateTime.ToString("yyyy-MM-dd");
            lblCreateTime.Tag     = "CreateTime";
            lblCreateTime.Visible = false;

            // Panel
            Panel pnlArea = new Panel();

            pnlArea.BackColor = DefaultBGColor;
            pnlArea.Controls.Add(lblCountDown);
            pnlArea.Controls.Add(lblDeadLine);
            pnlArea.Controls.Add(lblContents);
            pnlArea.Controls.Add(lblCreateTime);
            pnlArea.Controls.Add(btnModify);
            pnlArea.Size        = new Size(Todo.PnlAreaWidth, 50);
            pnlArea.Tag         = data.Id.ToString();
            pnlArea.MouseEnter += new System.EventHandler(this.PnlArea_MouseEnter);
            pnlArea.MouseLeave += new System.EventHandler(this.PnlArea_MouseLeave);
            pnlArea.Click      += new System.EventHandler(this.PnlTodoDeleteClick);

            // 完了タスクの場合は、完了タスク用のしょりを行う
            if (data.Deleted == 1)
            {
                this.ChangeCompleteTaskStyle(pnlArea, completeTaskStyle);
            }

            return(pnlArea);
        }