0

I want to add LinkLabel-s at the end of the text in RichTextBox control.I do that with this code:

int index = richTextBox1.Text.Length;
Point position = richTextBox1.GetPositionFromCharIndex(index);
LinkLabel label = new LinkLabel();
label.Text = "whatever";
label.AutoSize = false;
label.Location = position;
label.LinkBehavior = LinkBehavior.NeverUnderline;
richTextBox1.Controls.Add(label);

The problem here is that i do not know how to add text right after the last added LinkLabel,i.e. i want when add LinkLabel to move the caret next to the LinkLabel.How to do that?

3
Contributors
4
Replies
7
Views
9 Years
Discussion Span
Last Post by dotmon
0

Reference below(sample---add LinkLabel into ListBox):

for (int i = 0;i < 3;i++)
{
LinkLabel ll = new LinkLabel();
ll.Name = "test"+i;
ll.Text = ll.Name;
ll.Location = new Point(0,i*ll.Height);
this.listBox1.Controls.Add(ll);
Console.WriteLine(ll.Location);
ll.LinkClicked +=
new LinkLabelLinkClickedEventHandler(this.linkClicked);
}

This answer's key is the Location attribute of the public class
System.Windows.Forms.Control,if you are familiar with this
attribute then would not have the question at all.

Edited by pritaeas: Fixed formatting

0

This answer's key is the Location attribute of the public class
System.Windows.Forms.Control,if you are familiar with this
attribute then would not have the question at all.

when there are too many LinkLabel lines in the ListBox control,
then you must add "this.listBox1.Items.Add(ll);" under the above
code "this.listBox1.Controls.Add(ll);" because of this can help
the ListBox control to show the vertical scrollbar.

Edited by pritaeas: Fixed formatting

0

when there are too many LinkLabel lines in the ListBox control,
then you must add "this.listBox1.Items.Add(ll);" under the above
code "this.listBox1.Controls.Add(ll);" because of this can help
the ListBox control to show the vertical scrollbar.

The entire code is:

this.listBox1.DrawMode = DrawMode.OwnerDrawFixed;
this.listBox1.ItemHeight = new LinkLabel().Height;
for (int i = 0;i < 55;i++)
{
LinkLabel ll = new LinkLabel();
ll.Name = "test"+i;
ll.Text = "test"+i;
ll.Location = new Point(0,i*ll.Height);
this.listBox1.Controls.Add(ll);
this.listBox1.Items.Add(ll);
Console.WriteLine(ll.Location);
ll.LinkClicked +=
new LinkLabelLinkClickedEventHandler(this.linkClicked);
}

0

Hi,

sorry for me horrible english, but I have one question.

It is possible detected which (automaticaly generated) linklabel is clicked?

I write more items to listBox, and i can add linklabels at delete links.
Example:
1. book ............. <a>delete</a> (this is linklabel id book is 1)
2. book ............. <a>delete</a> (id this book is 2)
...
...

Thanks for whatever answer!

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.