Es gibt eine Button
, die ihre Position vertikal ändert, je nachdem, in welcher Zeile der Marker in der RichTextBox
installiert ist. Es ist notwendig, dass, wenn ich auf die Button
die Panel
(oder UserControl
, vielleicht ist es besser), gegenüber der Button
auf die volle Breite der RichTextBox
erschien.Wie kann ich ein Panel auf einer RichTextBox anzeigen?
Panel
sollte auf der RichTextBox
befinden. Das heißt, wenn die Anfangsgröße des Formulars (500, 500)
und dieses Panel
von der Kante bis zum Rand der RichTextBox
angezeigt wird, wenn der Benutzer die Rahmengröße auf (500; 1000)
ändert und erneut die Panel
Anzeige drückt, sollte diese Panel
dehnen und alles ist auch angezeigt auf der RichTextBox
. Unten ist der Code zum Anzeigen der Button
vertikal und ein animiertes GIF-Beispiel von dem, was ich brauche.
private void richTextBox1_TextChanged(object sender, EventArgs e)
{
var pos = richTextBox1.GetPositionFromCharIndex(richTextBox1.SelectionStart);
Point locationOnForm = panel1.FindForm()
.PointToClient(panel1.Parent.PointToScreen(panel1.Location));
Point newLocation = new Point(locationOnForm.X - 10, pos.Y + locationOnForm.Y - 13);
button1.Location = newLocation;
}
Vielleicht versuchen Sie könnte etwas mit [control Schichtung] verwenden (https://msdn.microsoft.com/en-us/library /aa984382(v=vs.71).aspx)? –
Sie können den uc überlagern, indem Sie ihn ähnlich positionieren wie den Knopf. Wo genau ist das Problem? (Beachten Sie, dass es die RTB überlagert, dh es wird einen Teil des Textes abdecken. – TaW