예제 #1
0
		public void ReadOnly_BackColor_Set ()
		{
			RichTextBox rtb = new RichTextBox ();
			rtb.BackColor = Color.Blue;
			rtb.ReadOnly = true;
			Assert.IsTrue (rtb.ReadOnly, "#A1");
			Assert.AreEqual (Color.Blue, rtb.BackColor, "#A2");

			Form form = new Form ();
			form.ShowInTaskbar = false;
			form.Controls.Add (rtb);
			form.Show ();

			Assert.IsTrue (rtb.ReadOnly, "#B1");
			Assert.AreEqual (Color.Blue, rtb.BackColor, "#B2");

			rtb.ReadOnly = false;
			Assert.IsFalse (rtb.ReadOnly, "#C1");
			Assert.AreEqual (Color.Blue, rtb.BackColor, "#C2");

			rtb.ReadOnly = true;
			Assert.IsTrue (rtb.ReadOnly, "#D1");
			Assert.AreEqual (Color.Blue, rtb.BackColor, "#D2");

			rtb.BackColor = Color.Red;
			Assert.IsTrue (rtb.ReadOnly, "#E1");
			Assert.AreEqual (Color.Red, rtb.BackColor, "#E2");

			rtb.ReadOnly = false;
			Assert.IsFalse (rtb.ReadOnly, "#F1");
			Assert.AreEqual (Color.Red, rtb.BackColor, "#F2");

			rtb.ReadOnly = true;
			rtb.ResetBackColor ();
			Assert.IsTrue (rtb.ReadOnly, "#G1");
#if NET_2_0
			Assert.AreEqual (SystemColors.Control, rtb.BackColor, "#G2");
#else
			Assert.AreEqual (SystemColors.Window, rtb.BackColor, "#G2");
#endif

			form.Dispose ();

			rtb = new RichTextBox ();
			rtb.ReadOnly = true;
			rtb.BackColor = Color.Blue;
			Assert.IsTrue (rtb.ReadOnly, "#H1");
			Assert.AreEqual (Color.Blue, rtb.BackColor, "#H2");

			form = new Form ();
			form.ShowInTaskbar = false;
			form.Controls.Add (rtb);
			form.Show ();

			Assert.IsTrue (rtb.ReadOnly, "#I1");
			Assert.AreEqual (Color.Blue, rtb.BackColor, "#I2");

			rtb.ReadOnly = false;
			Assert.IsFalse (rtb.ReadOnly, "#J1");
			Assert.AreEqual (Color.Blue, rtb.BackColor, "#J2");

			rtb.ResetBackColor ();
			Assert.IsFalse (rtb.ReadOnly, "#K1");
			Assert.AreEqual (SystemColors.Window, rtb.BackColor, "#K2");
			
			form.Close ();
		}
예제 #2
0
        /// <summary>
        /// Highlights rich text box with simple setting definition string.
        /// </summary>
        public static void HighlightSimpleSetting(
            RichTextBox rich,
            ITextValidator textValidator,
            ICharValidator charValidator)
        {
            if (textValidator.IsValidText(rich.Text))
            {
                rich.ResetBackColor();
            }
            else
            {
                rich.BackColor = Colors.LightRed;
            }

            int current = 0;
            foreach (string line in rich.Lines)
            {
                for (int i = 0; i < line.Length; i++)
                {
                    if (!charValidator.IsValidChar(line[i]))
                    {
                        rich.SelectionStart = current + i;
                        rich.SelectionLength = 1;
                        rich.SelectionColor = Color.Red;
                    }
                }

                current += line.Length + 1;
            }
        }