[Mono-winforms-list] MaskedTextBox.GetCharFromPosition Method
AATDark
AATDark at aol.com
Sun May 13 05:19:22 EDT 2007
Hi
I implemented a test programm which demonstrates the GetCharFromPosition
in TextBoxBase.cs The GetCharFromPosition is running well and has the
nearly the same behavior as the MS Method.
But there is a small different: I think mono displays the font
differntly.
Yours
Berni
> Hi
>
> Attention: THIS IS NOT FOR COMMIT!!
>
> As Attachment the Testdiff file ( working fine on Windows XP .NET SP2 but
> not on mono cygwin)
> And the current GetCharFromPoint in TextBoxBase.diff
>
> Hope this helps
>
> Yours
> Berni
> -----Ursprüngliche Nachricht-----
> Von: Jackson Harper [mailto:jackson at ximian.com]
> Gesendet: Montag, 7. Mai 2007 17:55
> An: aatdark at aol.com
> Cc: mono-winforms-list at lists.ximian.com
> Betreff: Re: [Mono-winforms-list] MaskedTextBox.GetCharFromPosition Method
>
> On Sat, 2007-05-05 at 16:44 -0400, aatdark at aol.com wrote:
> > hi
> > I expirienced a major problem:
> >
> > I run my function againt the one from MS and itereatet
> > the point.X coordinate from 0 to 90
> >
> >
> > It seems to be that MS uses an other font or such thing. I testet this
> > and the only difference is the GdiCharSet=1 in mono
>
> Yes, fonts will be different between different machines. You can't rely
> on the user having the same size font on every machine. What you should
> do, is explicitly set the font size for the textbox in your tests.
>
>
> Do you mind sending your tests to the list? It's hard for me to tell
> exactly what is going on from the test output, without seeing the tests.
>
> Jackson
>
>
> > Problem: Look at the 17A and 12A.
> > In my code the A startet at the X coordinate 17 and at MS's code it
> > startet at 12
> >
> > text = "XXABCQEWRY";
> > Mono
> > 0 X
> > 1 X 2 X 3 X 4 X 5 X
> > 6 X 7 X 8 X 9 X 10 X
> > 11 X 12 X 13 X 14 X 15 X
> > 16 X 17 A 18 A 19 A 20 A
> > 21 A 22 A 23 A 24 A 25 B
> > 26 B 27 B 28 B 29 B 30 B
> > 31 B 32 C 33 C 34 C 35 C
> > 36 C 37 C 38 C 39 C 40 Q
> > 41 Q 42 Q 43 Q 44 Q 45 Q
> > 46 Q 47 Q 48 E 49 E 50 E
> > 51 E 52 E 53 E 54 E 55 E
> > 56 W 57 W 58 W 59 W 60 W
> > 61 W 62 W 63 W 64 W 65 W
> > 66 R 67 R 68 R 69 R 70 R
> > 71 R 72 R 73 R 74 Y 75 Y
> > 76 Y 77 Y 78 Y 79 Y 80 Y
> > 81 Y 82 Y 83 Y 84 Y 85 Y
> > 86 Y 87 Y 88 Y 89 Y
> >
> >
> >
> >
> >
> > MS
> > 0 X
> > 1 X 2 X 3 X 4 X 5 X
> > 6 X 7 X 8 X 9 X 10 X
> > 11 X 12 A 13 A 14 A 15 A
> > 16 A 17 A 18 A 19 B 20 B
> > 21 B 22 B 23 B 24 B 25 B
> > 26 C 27 C 28 C 29 C 30 C
> > 31 C 32 C 33 Q 34 Q 35 Q
> > 36 Q 37 Q 38 Q 39 Q 40 E
> > 41 E 42 E 43 E 44 E 45 E
> > 46 E 47 E 48 W 49 W 50 W
> > 51 W 52 W 53 W 54 W 55 W
> > 56 W 57 R 58 R 59 R 60 R
> > 61 R 62 R 63 R 64 R 65 R
> > 66 Y 67 Y 68 Y 69 Y 70 Y
> > 71 Y 72 Y 73 Y 74 Y 75 Y
> > 76 Y 77 Y 78 Y 79 Y 80 Y
> > 81 Y 82 Y 83 Y 84 Y 85 Y
> > 86 Y 87 Y 88 Y 89 Y
> >
> >
> > I used the following code
> > LineTag tag = document.FindTag(p.X,p.Y,out index,false);
> > return tag.Text()[lenght-1]
> >
> > Does anyone know an workaround ?
> >
> > Yours,
> > Berni
> >
> > -----Original Message-----
> > From: Jackson Harper <jackson at ximian.com>
> > To: aatdark at aol.com
> > Cc: mono-winforms-list at lists.ximian.com
> > Sent: Sat, 5 May 2007 8:28 pm
> > Subject: Re: [Mono-winforms-list] MaskedTextBox.GetCharFromPosition
> > Method
> >
> >
> >
> > TextControl::FindTag takes pixel coordinates and returns a line tag
> >
> > aswell as a char index.
> >
> >
> >
> >
> >
> > On Sat, 2007-05-05 at 08:45 -0400, aatdark at aol.com wrote:
> >
> > > Hi
> >
> > > I have written lots of nunit tests for the Function and they are all
> >
> > > runnning well on MS .NET 2.0
> >
> > >
> >
> > > No i'm proceding with step 2.
> >
> > >
> >
> > > for now i try to get the correct line with
> >
> > > Line line = document.GetLineByPixel(p.Y,false);
> >
> > >
> >
> > >
> >
> > > but the problem is: How can i get the char index from the position in
> >
> > > pixels?
> >
> > > I can only use the
> >
> > > LineTagToCharIndex
> >
> > >
> >
> > >
> >
> > >
> >
> > > if i know the char index.
> >
> > >
> >
> > > Because there could be different fonts. The only solution seems to be
> >
> > > to call the Grapics.MeasureText method for each letter.
> >
> > >
> >
> > > for example if the Text is:
> >
> > > HiTestText
> >
> > > I have to measure
> >
> > > H
> >
> > > Hi
> >
> > > HiT
> >
> > > HiTe
> >
> > > ...
> >
> > >
> >
> > > But this seems to be terrible slow?
> >
> > > Anyone a better solution for this ?
> >
> > >
> >
> > > Yours,
> >
> > > Berni
> >
> > >
> >
> > > -----Original Message-----
> >
> > > From: Jackson Harper <jackson at ximian.com>
> >
> > > To: aatdark at aol.com
> >
> > > Cc: mono-winforms-list at lists.ximian.com
> >
> > > Sent: Thu, 3 May 2007 8:43 pm
> >
> > > Subject: Re: [Mono-winforms-list] MaskedTextBox.GetCharFromPosition
> >
> > > Method
> >
> > >
> >
> > > On Thu, 2007-05-03 at 13:58 -0400, aatdark at aol.com wrote:
> >
> > >
> >
> > > > hi
> >
> > >
> >
> > > > concerning 1.)
> >
> > >
> >
> > > > Is there already an excisiting nunit file forthe MaskedTextBox ? I
> >
> > >
> >
> > > > can't find one
> >
> > >
> >
> > > >
> >
> > >
> >
> > >
> >
> > >
> >
> > > You should probably start by unit testing TextBoxBase, I would just add
> >
> > >
> >
> > > your tests to TextBoxTest at first, then we can add some more to
> >
> > >
> >
> > > MaskedTextBox later. But it is best to test from the bottom up. Since
> >
> > >
> >
> > > you will have to implement this feature from the bottom up.
> >
> > >
> >
> > >
> >
> > >
> >
> > > Cheers,
> >
> > >
> >
> > > Jackson
> >
> > >
> >
> > >
> >
> > >
> >
> > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > yours
> >
> > >
> >
> > > > berni
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > -----Original Message-----
> >
> > >
> >
> > > > From: Jackson Harper <jackson at ximian.com>
> >
> > >
> >
> > > > To: aatdark at aol.com
> >
> > >
> >
> > > > Cc: mono-winforms-list at lists.ximian.com
> >
> > >
> >
> > > > Sent: Thu, 3 May 2007 7:17 pm
> >
> > >
> >
> > > > Subject: Re: [Mono-winforms-list] MaskedTextBox.GetCharFromPosition
> >
> > >
> >
> > > > Method
> >
> > >
> >
> > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > These methods just need to be implemented in the base TextBoxBase
> class.
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > All you should need to do is:
> >
> > >
> >
> > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > 1. Write lots of unit tests
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > 2. Implement using TextControl::LineTagToCharIndex
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > 3. Remove the notyet ifdef in MaskedTextBox
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > 4. Send your patches to the list
> >
> > >
> >
> > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > Please note, don't proceed to step 2 before completing step 1.
> >
> > >
> >
> > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > Good luck!
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > Jackson
> >
> > >
> >
> > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > On Thu, 2007-05-03 at 13:33 -0400, aatdark at aol.com wrote:
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > Hi
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > Is anyone working at the MaskedTextBox.GetCharFromPosition Method
> at
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > the moment?
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > I think implementing this will affect TextControl.cs class Document
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > too.
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > I'm going to try it if nobody is on it
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > yours
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > berni
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> ______________________________________________________________________
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > AOL now offers free email to everyone. Find out more about what's
> free
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > from AOL at AOL.com.
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > _______________________________________________
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > Mono-winforms-list maillist - Mono-winforms-list at lists.ximian.com
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > > http://lists.ximian.com/mailman/listinfo/mono-winforms-list
> >
> > >
> >
> > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > ______________________________________________________________________
> >
> > >
> >
> > > > AOL now offers free email to everyone. Find out more about what's free
> >
> > >
> >
> > > > from AOL at AOL.com.
> >
> > >
> >
> > > >
> >
> > >
> >
> > > > _______________________________________________
> >
> > >
> >
> > > > Mono-winforms-list maillist - Mono-winforms-list at lists.ximian.com
> >
> > >
> >
> > > > http://lists.ximian.com/mailman/listinfo/mono-winforms-list
> >
> > >
> >
> > >
> >
> > >
> >
> > >
> >
> > > ______________________________________________________________________
> >
> > > AOL now offers free email to everyone. Find out more about what's free
> >
> > > from AOL at AOL.com.
> >
> > >
> >
> > > _______________________________________________
> >
> > > Mono-winforms-list maillist - Mono-winforms-list at lists.ximian.com
> >
> > > http://lists.ximian.com/mailman/listinfo/mono-winforms-list
> >
> >
> >
> >
> > ______________________________________________________________________
> > AOL now offers free email to everyone. Find out more about what's free
> > from AOL at AOL.com.
> >
> > _______________________________________________
> > Mono-winforms-list maillist - Mono-winforms-list at lists.ximian.com
> > http://lists.ximian.com/mailman/listinfo/mono-winforms-list
-------------- next part --------------
A non-text attachment was scrubbed...
Name: GetPosiotnTestGUI.cs
Type: text/x-csharp
Size: 615 bytes
Desc: not available
Url : http://lists.ximian.com/pipermail/mono-winforms-list/attachments/20070513/972c415b/attachment.bin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: TextBoxBase.cs.diff
Type: text/x-patch
Size: 1523 bytes
Desc: not available
Url : http://lists.ximian.com/pipermail/mono-winforms-list/attachments/20070513/972c415b/attachment-0001.bin
More information about the Mono-winforms-list
mailing list