Index: TextBoxTest.cs
===================================================================
--- TextBoxTest.cs	(Revision 76713)
+++ TextBoxTest.cs	(Arbeitskopie)
@@ -690,5 +690,60 @@
 			_invalidated = 0;
 			_paint = 0;
 		}
+		[Test]
+		public void GetCharFromPositionTest()
+		{
+			SizeF size,size2;			
+			TextBox box = new TextBox();
+			box.Width=200;
+			box.Height=20;
+			Graphics g = box.CreateGraphics();  //for measuretext width
+			char charAtPos = ' ';
+			String text = "SampleTexXYZ";
+			box.Text =text;
+			charAtPos = box.GetCharFromPosition(new Point(-10,-10));
+			//Assert.AreEqual(text[text.Length-1],charAtPos,"GetCharFromPositionTest-1");
+			
+			charAtPos = box.GetCharFromPosition(new Point(0,0));
+			Assert.AreEqual(text[0],charAtPos,"GetCharFromPositionTest-1-1");
+
+			//Out side last char
+			charAtPos = box.GetCharFromPosition(new Point(box.Width+10,box.Height+10));		
+			Assert.AreEqual(text[text.Length-1],charAtPos,"GetCharFromPositionTest-2");
+			charAtPos = box.GetCharFromPosition(new Point(box.Width,box.Height));
+			Assert.AreEqual(text[text.Length-1],charAtPos,"GetCharFromPositionTest-2-1");
+			// 					012345
+			box.Text  = text = "XXABCQEWRY";
+			charAtPos = box.GetCharFromPosition(new Point(0,0));
+			Assert.AreEqual(text[0],charAtPos,"GetCharFromPositionTest-3");
+			charAtPos = box.GetCharFromPosition(new Point(box.Width+10,box.Height+10));
+			Assert.AreEqual(text[text.Length-1],charAtPos,"GetCharFromPositionTest-4");
+			
+			size = g.MeasureString (text.Substring(0,3), box.Font);
+			//Console.WriteLine("TEST:" + box.Font + "   " +size);
+			for(int i =0; i<90;i++)
+			{
+				char ch =  box.GetCharFromPosition(new Point(i,5));
+				if(i>=0&&i<=11)
+					Assert.AreEqual(text[0],ch,"##"+i);
+				if(i>=12 &&i<=18)
+					Assert.AreEqual(text[2],ch,"##"+i);
+				if(i>=19 && i<=25)
+					Assert.AreEqual(text[3],ch,"##"+i);
+				if(i>=26 && i<=32)
+					Assert.AreEqual(text[4],ch,"##"+i);
+				if(i>=33 && i<=39)
+					Assert.AreEqual(text[5],ch,"##"+i);
+				if(i>=40 && i<=47)
+					Assert.AreEqual(text[6],ch,"##"+i);
+				if(i>=48 && i<=56)
+					Assert.AreEqual(text[7],ch,"##"+i);
+				if(i>=57 && i<=65)
+					Assert.AreEqual(text[8],ch,"##"+i);				
+				if(i>=66 && i<=89)
+					Assert.AreEqual(text[9],ch,"##"+i);
+			}
+
+		}
 	}
 }
=