richTextBox滾動條問題! 各位,如果我的richTextBox滾動條最大值大于65535時,如何才能獲取到這個最大值,我用GetscrollInfo或GetScrollRange函數時,獲得的最大值永遠是65535,請問我要如何才能獲取到真實的最大.
好像WM_VSCROll支持的就是16位(65535). GetScrollInfo(intptr hwnd,int nbar,tagScrollInfo info);
tagScrollInfo的結构為 public struct tagScrollInfo
{
uint nSize;
uint fMask;
int nMax;
int nMin;
int npos;
int TracePos;
}如何詳細用這個GetScrollInfo以及tagScrollInfo這個參數,誰能給我個詳細代碼??
好像msdn上說用GetScrollInfo就能解決滾動條16位的問題.
謝謝!!!
好像WM_VSCROll支持的就是16位(65535). GetScrollInfo(intptr hwnd,int nbar,tagScrollInfo info);
tagScrollInfo的結构為 public struct tagScrollInfo
{
uint nSize;
uint fMask;
int nMax;
int nMin;
int npos;
int TracePos;
}如何詳細用這個GetScrollInfo以及tagScrollInfo這個參數,誰能給我個詳細代碼??
好像msdn上說用GetScrollInfo就能解決滾動條16位的問題.
謝謝!!!
解决方案 »
- 如何改写下面的wpf使scrollbar的上下按钮和滚动条都填充图标
- LINQ模糊查询的问题:LINQ TO SQL中的like怎么实现?在线等!
- DataGridView中,绑定到数据库,如何根据DB中某一列的值自定义显示在DataGridView对应列的值
- 为什么就实现不了密码输错3次 账户不能登录啊?
- C#中的Bitmap应该传递什么类型的参数
- 请问怎样在一个程序里启动另外一个程序?
- 关于开展“.net百题问答的活动”的提议(by redbb)
- 新人高分求解答,RichTextBox 数据加密问题
- 如何操作第三方程序里嵌入的网页?
- Winform有关于Windows media player的问题
- c# 这样的加载webBrowser1.Document.Cookie报错 请问为什么
- 谁有免费的万年历服务?
//Signature:
[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool GetScrollInfo(IntPtr hwnd, int fnBar, ref SCROLLINFO lpsi);
//User-Defined Types:
[StructLayout(LayoutKind.Sequential)]
struct SCROLLINFO
{
public uint cbSize;
public uint fMask;
public int nMin;
public int nMax;
public uint nPage;
public int nPos;
public int nTrackPos;
}private enum ScrollBarDirection
{
SB_HORZ = 0,
SB_VERT = 1,
SB_CTL = 2,
SB_BOTH = 3
}private enum ScrollInfoMask
{
SIF_RANGE = 0x1,
SIF_PAGE = 0x2,
SIF_POS = 0x4,
SIF_DISABLENOSCROLL = 0x8,
SIF_TRACKPOS = 0x10,
SIF_ALL = SIF_RANGE + SIF_PAGE + SIF_POS + SIF_TRACKPOS
}// Returns the width of a UserControl containing a RichTextBox
// such that no horizontal scrollbar will be needed
public int PreferredWidth
{
get
{
int MINWIDTH = 200;
int BORDERWIDTH = SystemInformation.Border3DSize.Width;
int SCROLLBARWIDTH = SystemInformation.VerticalScrollBarWidth; SCROLLINFO si = new SCROLLINFO();
si.cbSize = Marshal.SizeOf( si );
si.fMask = (int) ScrollInfoMask.SIF_RANGE;
GetScrollInfo( RichTextBox1.Handle, (int) ScrollBarDirection.SB_HORZ, ref si ); int iWidth = si.nMax - si.nMin + 2 * BORDERWIDTH + SCROLLBARWIDTH + 2;
return Math.Max( MINWIDTH, iWidth );
}
}
請問高手們還有沒有另外一些方法啊.
當richTextBox內容過多時,滾動條的值要如何設置.
目前我做的跟msn介面一樣,滾動條會自動排放.但是,當內容過多,也就是滾動條的值超過65535時,這時滾動條值就不正確了
玩過msn的就知道他的介面滾動條做得是多麼好!