- 題名: TreeViewの水平スクロールバー
- 日時: 2009/01/26 14:01:04
- ID: 23858
- この記事の返信元:
- (なし)
- この記事への返信:
- [23869] Re[1]: TreeViewの水平スクロールバー2009/01/27 3:17:48
- ツリーを表示
コントローラの水平スクロールバーを消す方法ですが、 ShowScrollBar関数でできるかもしれません。 pinvoke.net: Show a TextBox's vertical scrollbar only when it is necessary http://pinvoke.net/default.aspx/user32/ShowScrollBar.html Private Declare Function ShowScrollBar Lib "user32" ( _ ByVal hwnd As IntPtr, ByVal wBar As Long, ByVal bShow As Long) As Long ShowScrollBar(TreeView1.Handle, 0, 0)
■No23869に返信(管理人さんの記事)
> Private Declare Function ShowScrollBar Lib "user32" ( _
> ByVal hwnd As IntPtr, ByVal wBar As Long, ByVal bShow As Long) As Long
>
> ShowScrollBar(TreeView1.Handle, 0, 0)
元の引数の型は (HWND, int, BOOL) なので、Long だと大きすぎる気がします。
http://msdn.microsoft.com/ja-jp/library/cc364862.aspx
Imports System.Runtime.InteropServices
Public Class Form1
Private Enum SB As Integer
SB_HORZ
SB_VERT
SB_CTL
SB_BOTH
End Enum
Private Declare Function ShowScrollBar Lib "user32" ( _
ByVal hwnd As IntPtr, _
ByVal wBar As SB, _
<MarshalAs(UnmanagedType.Bool)> ByVal bShow As Boolean _
) As <MarshalAs(UnmanagedType.Bool)> Boolean
Private Sub CheckBox1_CheckedChanged(ByVal sender As Object, ByVal e As EventArgs) Handles CheckBox1.CheckedChanged
ShowScrollBar(Me.TreeView1.Handle, SB.SB_HORZ, CheckBox1.Checked)
End Sub
End Class
分類:[.NET]
はじめまして、つくねといいます。
文字列が表示しきれないときに"..."を表示する
http://dobon.net/vb/dotnet/graphics/stringtrimming.html
上記サイトを参考にTreeViewに対してTrimmingした文字をDrawStringしているのですが、
ある一定の文字数以上だとTreeViewに水平スクロールバーが出現してしまいます。
見た目は"..."になっているが、実際には描画しているのかな?と思い、
文字列を描画したときの大きさを計測する
http://dobon.net/vb/dotnet/graphics/measurestring.html
こちらを参考に文字の描画領域を計測してみました。
すると描画領域はTreeViewのWidth内に納まっているのですが、
ToolTipがTreeViewのWidthより大きい場合、水平スクロールバーが表示されてしまいました。
そこで質問なのですが、
・(恐らく自動生成された)ToolTipを表示しないようにしたい。
もしくは
・TreeViewの水平スクロールバーを表示しないようにしたい。(垂直スクロールバーは利用したい。)
どちらかを実現させたいのですが、何か方法はありませんでしょうか?
よろしくお願いします。