RichTextBox
にマーカーが取り付けられているラインに応じて、位置が垂直に変わるButton
があります。 Button
をクリックすると、RichTextBox
の全幅に合わせてButton
の反対側に、Panel
(またはUserControl
、おそらくそれが良い)が表示される必要があります。RichTextBoxにパネルを表示するにはどうすればいいですか?
Panel
は、RichTextBox
にある必要があります。つまり、(500, 500)
とPanel
の初期サイズをRichTextBox
のエッジからエッジまで表示すると、ユーザがフレームサイズを(500; 1000)
に変更してPanel
ディスプレイを再度押すと、このPanel
が伸び、すべてがまた伸びるはずですRichTextBox
に表示されます。以下は、Button
を縦に表示するためのコードと、必要なアニメーションGIFの例です。 onClickの方法で
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;
}
たぶん、あなたは、[コントロールレイヤー]で何かを試みることができる(https://msdn.microsoft.com/en-us/library /aa984382(v=vs.71).aspx)? –
ボタンを配置するのと同じように、ucをオーバーレイすることができます。どこに問題がありますか? (RTBをオーバーレイする、つまりテキストの一部をカバーすることに注意してください。 – TaW