c#鼠标点击richtextbox自动滚动滚动条那一刻和松开那一刻时 各会产生什么事件 如没有 能自己增加吗?

C# richtextbox的滚动条问题_百度知道
提问者采纳
控制不显示滚动条.None。
属性 ScrollBars = RichTextBoxScrollBarsrichtexbox的 ScrollToCaret()方法支持滚动到当前位置
我是这样设置的,但是它就是滚动不了。最下面那个内容就只能显示一半然后就滚动不下去
滚动条不要设置两个,设置一个垂直的,然后设定自动换行。
怎么实现自动换行解决呢?我加了这个还是不行诶,是不是里面只有加text文本才能实现滚动?RichCity.WordWrap =
是啊。。你加了其他的?如果你加了其他的建议你不要用richbox,用 pannel 容易,也是可以滚动的。
上面画的那几个是label和linklabel加上背景图片后添加在richcity上的,画黑那个本来想让它部分不在屏幕显示,要靠滑动,然后不知道为什么就是滑动不了我试一下pannel
提问者评价
谢谢~虽然还不知道richtextbox为什么不行,不过panel可以了
其他类似问题
richtextbox的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁一隐归尘,浮志潺潺
第一种思路:
richTextBox1.ScrollBars = RichTextBoxScrollBars.N
richTextBox.ContentsResized += new ContentsResizedEventHandler(richTextBox_ContentsResized);
private void richTextBox1_ContentsResized(object sender, ContentsResizedEventArgs e)
richTextBox1.Height = e.NewRectangle.Height + 10;
第二种思路:
1.先调用以下方法:
[DllImport("user32.dll", EntryPoint = "SendMessageA")]
private static extern int SendMessage(IntPtr hwnd, int wMsg, IntPtr wParam, string lParam);
2.设置RichTextBox:& & & & & &&
this.richTextBox1 = new RichTextBox();
this.richTextBox1.Text = "contentcontentcontentcontentcontentcontentcontentcontentcontent";
this.richTextBox1.Width = this.pPanel.Width-15;
this.richTextBox1.ScrollBars = RichTextBoxScrollBars.N
this.richTextBox1.Location = new Point(0, 0 + this.lab1.Height+10);
//得到RichTextBox高度
int EM_GETLINECOUNT = 0x00BA;//获取总行数的消息号
int lc = SendMessage(this.richTextBox1.Handle, EM_GETLINECOUNT, IntPtr.Zero, "");
int sf = this.richTextBox1.Font.Height * (lc + 1) + this.richTextBox1.Location.Y;
this.richTextBox1.Height =
this.richTextBox1.Resize += new EventHandler(richTextBox1_Resize);
this.Controls.Add(this.richTextBox1);
3.设置RichTextBox的Resize:
void richTextBox1_Resize(object sender, EventArgs e)
int EM_GETLINECOUNT = 0x00BA;//获取总行数的消息号
int lc = SendMessage(this.richTextBox1.Handle, EM_GETLINECOUNT, IntPtr.Zero, "");
int sf = this.richTextBox1.Font.Height * (lc + 1) + this.richTextBox1.Location.Y;
this.richTextBox1.Height =
阅读(...) 评论()vs2012中c#的RichTextBox的滚动条是32位的吗_百度知道
vs2012中c#的RichTextBox的滚动条是32位的吗
VS2010中c#的RTB滚动条值好像是16位的 请问VS2012中是32位的吗
。。。。应该没有32和16位这种说法滚动条应该是继承自父类的一个成员对象而已吧
其他类似问题
richtextbox的相关知识
按默认排序
其他1条回答
滚动条 有这个区分吗 这个还真不知道哈 了解下
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁C#两个richTextBox同步滚动 - foart的专栏
- 博客频道 - CSDN.NET
1408人阅读
using System.Collections.G
using System.T
using System.Windows.F
using System.Runtime.InteropS
namespace SolveQuestion
class RichTextBoxEx : RichTextBox
[DllImport(&user32.dll&)]
public static extern int SendMessage(IntPtr hWnd, int Msg, IntPtr wParam, IntPtr lParam);
public RichTextBoxEx()
public const int WM_HSCROLL = 276;
public const int WM_VSCROLL = 277;
public const int WM_SETCURSOR = 32;
public const int WM_MOUSEWHEEL = 522;
public const int WM_MOUSEMOVE = 512;
public const int WM_MOUSELEAVE = 675;
public const int WM_MOUSELAST = 521;
public const int WM_MOUSEHOVER = 673;
public const int WM_MOUSEFIRST = 512;
public const int WM_MOUSEACTIVATE = 33;
private RichTextBox otherRichTextB
public RichTextBox OtherRichTextBox
get { return otherRichTextB }
set { otherRichTextBox = }
protected override void WndProc(ref Message m)
if ((otherRichTextBox != null) &&
(m.Msg == WM_HSCROLL ||
m.Msg == WM_VSCROLL ||
m.Msg == WM_SETCURSOR ||
m.Msg == WM_MOUSEWHEEL ||
m.Msg == WM_MOUSEMOVE ||
m.Msg == WM_MOUSELEAVE ||
m.Msg == WM_MOUSELAST ||
m.Msg == WM_MOUSEHOVER ||
m.Msg == WM_MOUSEFIRST ||
m.Msg == WM_MOUSEACTIVATE))
SendMessage(otherRichTextBox.Handle, m.Msg, m.WParam, m.LParam);
base.WndProc(ref m);
private void Form1_Load(object sender, EventArgs e)
richTextBoxEx1.OtherRichTextBox = richTextBoxEx2;
&原理是:重写RichTextBox截获它的滚动条消息和鼠标消息发送给另一个RichTextBox
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1505007次
积分:11135
积分:11135
排名:第505名
原创:146篇
转载:229篇
评论:148条
(2)(4)(3)(4)(2)(7)(2)(3)(2)(3)(3)(2)(1)(6)(5)(3)(4)(9)(13)(1)(1)(2)(6)(1)(3)(3)(2)(6)(10)(2)(3)(3)(3)(7)(9)(12)(13)(17)(11)(3)(2)(4)(7)(15)(6)(2)(1)(2)(10)(8)(14)(6)(6)(13)(28)(22)(4)(10)(4)(1)(1)(1)(11)(1)(1)

我要回帖

更多关于 richtextbox滚动条 的文章

 

随机推荐