Hi all,
Today i realized that when i have more than 255 lines and i apply numbering bullets RichTextBox keep giving me number 255 after line 254 see the picture i insert.
Edit: I use WinForms
Edit 2: I put part of my code that relate to set ordered list in RichTextBox
[
^]
Click to see the screenshot[
^]
Is this a limitation of RichTextBox or i have to do something to fix it?
Thank you
What I have tried:
I don't know what to do. I don't know what the cause may be to start fixing from it.
I have numbering bullets from SendMessage function by PARAFORMAT2
Part of my code:
#region PARAFORMAT2
[StructLayout(LayoutKind.Sequential)]
private class PARAFORMAT2
{
public int cbSize;
public int dwMask;
public short wNumbering;
public short wReserved;
public int dxStartIndent;
public int dxRightIndent;
public int dxOffset;
public short wAlignment;
public short cTabCount;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 0x20)]
public int[] rgxTabs;
public int dySpaceBefore;
public int dySpaceAfter;
public int dyLineSpacing;
public short sStyle;
public byte bLineSpacingRule;
public byte bOutlineLevel;
public short wShadingWeight;
public short wShadingStyle;
public short wNumberingStart;
public short wNumberingStyle;
public short wNumberingTab;
public short wBorderSpace;
public short wBorderWidth;
public short wBorders;
public PARAFORMAT2()
{
this.cbSize = Marshal.SizeOf(typeof(PARAFORMAT2));
}
}
#endregion
public enum Paraformat2Numbering
{
zero = 0,
Normal = 1,
ArabicNumbers = 2,
LowerCaseLetter = 3,
UpperCaseLetter = 4,
LowerCaseRoman = 5,
UpperCaseRoman = 6
}
public enum Paraformat2NumberingStyle
{
RightParenthesis = 0x000,
DoubleParenthesis = 0x100,
Period = 0x200,
Plain = 0x300,
zero = 0x400
}
public bool SelectionOrderList
{
get
{
return (
(GetSelectionParaformat2wNumbering() == Paraformat2Numbering.ArabicNumbers) &&
(GetSelectionParaformat2wNumberingStyle() == Paraformat2NumberingStyle.Period)
);
}
set
{
bOrder = value;
if (value == true)
SetSelectionParaFormat2(Paraformat2NumberingStyle.Period, Paraformat2Numbering.ArabicNumbers);
else
RemoveSelectionParaFormat2();
}
}
SetSelectionParaFotrmat2 method
public void SetSelectionParaFormat2(Paraformat2NumberingStyle style, Paraformat2Numbering Number)
{
PARAFORMAT2 p = new PARAFORMAT2();
p.dwMask = (int)(PFM_NUMBERING | PFM_OFFSET | PFM_NUMBERINGSTART | PFM_NUMBERINGSTYLE | PFM_NUMBERINGTAB);
p.wNumbering = (short)Number;
p.wNumberingStyle = (short)style;
p.wNumberingStart = 1;
p.wNumberingTab = 500;
SendMessage(richTextBox.Handle, EM_SETPARAFORMAT, 0, p);
}
I set them by this
public bool SelectionOrderList
{
get
{
richTextBoxBulletClass r = new richTextBoxBulletClass();
r.richTextBox = note_txt;
return r.SelectionOrderList;
}
set
{
richTextBoxBulletClass r = new richTextBoxBulletClass();
r.richTextBox = note_txt;
r.SelectionOrderList = value;
}
}
Hope that helps