コード例 #1
0
ファイル: TaskForm.cs プロジェクト: suxiaojack/todomoo
        void DrawNotesAccordion()
        {
            // Setup accordion
            panAccordion.Controls.Add(accordion);
            accordion.SetBounds(0, 0, panAccordion.Width - scrollAccordion.Width - 1, panAccordion.Height);
            accordion.MinimumContentHeight = 100;
            accordion.BackColor            = SystemColors.Control;

            // Add items, Note object as Tag
            ArrayList notes = task.GetNotes();

            foreach (Note note in notes)
            {
                AccordionItem item = new AccordionItem(ShortenString(note.Text, 50), imgNote.Images[note.Marked ? 1 : 0]);

                // Note marking on double click
                item.IconBox.Tag          = note;
                item.IconBox.DoubleClick += delegate(object sender, EventArgs e) {
                    Note note_w = (Note)(((PictureBox)sender).Tag);
                    note_w.Marked = !note_w.Marked;
                    note_w.Update();
                    item.Icon = imgNote.Images[note_w.Marked ? 1 : 0];
                };

                // Setup text box
                RichTextBox text = new RichTextBox();
                text.LinkClicked += NoteLinkClicked;
                text.BorderStyle  = BorderStyle.None;
                item.Tag          = note;
                text.Text         = note.Text;
                text.Multiline    = true;
                text.WordWrap     = chkWordWrap.Checked;
                text.ScrollBars   = RichTextBoxScrollBars.Both;
                text.Font         = (chkMonospace.Checked ? new Font(notes_monospace_font, 10) : new Font(this.Font.FontFamily, 10));
                text.Validated   += delegate { try { ((Note)item.Tag).Text = text.Text; item.Text = ShortenString(((Note)item.Tag).Text, 50); } catch { } };
                item.Resize      += delegate { try { text.SetBounds(0, 1, item.SpaceAvailable.Width, item.SpaceAvailable.Height - 1); } catch {} };
                item.AddControl(text);
                accordion.AddAccordionItem(item);
            }

            RedrawNotesScroll();
        }