- 題名: 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の水平スクロールバーを表示しないようにしたい。(垂直スクロールバーは利用したい。)
どちらかを実現させたいのですが、何か方法はありませんでしょうか?
よろしくお願いします。