Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将滚动条与RichTextBox中的行匹配_C#_Winforms_Scrollbar_Richtextbox - Fatal编程技术网

C# 如何将滚动条与RichTextBox中的行匹配

C# 如何将滚动条与RichTextBox中的行匹配,c#,winforms,scrollbar,richtextbox,C#,Winforms,Scrollbar,Richtextbox,我正在向richtextbox控件添加按钮(带有文本和图像),但因为我没有使用以下行: richTextBox1.AppendText(Environment.NewLine + str); 滚动条与总行数不匹配,并且无法正确调整大小,如何解决此问题?出现了什么问题 我发现这是一种非常奇特的做事方式。首先,让我们添加一点背景: 当您使用richTextBox1.Controls.Add(new button())时-您要做的是:您将新按钮添加为richTextBox1.Controls的子项,

我正在向
richtextbox
控件添加按钮(带有文本和图像),但因为我没有使用以下行:

richTextBox1.AppendText(Environment.NewLine + str);
滚动条与总行数不匹配,并且无法正确调整大小,如何解决此问题?

出现了什么问题 我发现这是一种非常奇特的做事方式。首先,让我们添加一点背景:

当您使用
richTextBox1.Controls.Add(new button())
时-您要做的是:您将新按钮添加为
richTextBox1.Controls的子项,而不是作为内容-这就是问题所在

滚动条设置为从
richtextbox
的内容中读取其高度/可滚动区域等,而您的滚动条没有内容,因此没有滚动条(或错误读数等)

您可以创建一个自定义richtextbox控件,该控件从其子控件的位置继承其可滚动区域。但是,如果您希望避免这条路线,请继续阅读:

正确的方法
我不知道您的用例,因此这可能不起作用,但我会删除
richtextbox
控件,而是使用
面板
控件。例如,面板控件将根据子控件更新其滚动条,而
richtextbox
则不会-这将提供您期望的行为。

Winform或Wpf?@使用Winform标记im,以便我们都在同一页面上,你是说当内容添加到richtextbox时,滚动条没有正确更新吗?另外,您是如何向richtextbox添加内容的?第一部分是的,我添加了如下内容(按钮):richTextBox1.Controls.add(button);你最初的要求是什么?按钮、文本和图像看起来像HTML内容。你知道你可以使用
WebBrowser
控件在windows窗体中显示HTML内容吗?谢谢,我确实切换到了panel而不是richtextbox(它起作用了),这对我来说以前更好,但现在不行了。