2009-05-26 4 views
4

VB.NETでWinformを作成し、実行時にパネルのサイズ変更を可能にするSplitterコントロールを追加しました。.NETスプリッタコントロールディスプレイ

私の問題は、スプリッタコントロールが明らかでないことです。私は、ユーザーがフォームのサイズを変更できることを知る方法で表示させたいと思います。現時点では、基本的には色を変えただけですが、その様子は気に入らないのです。

誰でもこのコントロールを使用する適切な方法を教えていただけます。その結果、ユーザーはパネルのサイズ変更がすぐにわかるようになりますか?

答えて

7

私はちょうどあなたがあなた自身を投稿したボーダー・トリックを提案しようとしていました。私は通常行うもう一つは、私がスプリッタ制御のためのMouseEnterとMouseLeaveイベントのイベントハンドラをフックアップし、そこにこのコードを追加することです:

private void Splitter_MouseEnter(object sender, EventArgs e) 
{ 
    ((Splitter)sender).BackColor = SystemColors.ControlDark; 
} 

private void Splitter_MouseLeave(object sender, EventArgs e) 
{ 
    ((Splitter)sender).BackColor = SystemColors.Control; 
} 

スプリッタが「点灯」(というか、影その方法マウスがそれを通り過ぎると、あなたがそこで対話することができるコントロールがあることに注意を引く。

+0

チップをありがとう。私はこれを私のコードに加えました。そして私の見解から使いやすさを改善しています。 – jgallant

0

さて、

私はボーダーを持つようにパネルを設定した場合、パネルのサイズを変更できるように、それが見えますね。

境界線が設定されていないため、スプリッタが表示されませんでした。

0

SplitterWidthプロパティをより目立たせるために大きな値に設定することができます。

また、マウスがスプリッタコントロール上にあるときにマウスカーソルを変更することもできます。同様の考え方は、マウスがコントロールの上にあるときにツールテキストを表示することです。

0

私はすべてのスプリッタを同じように動作させるようにコントロールを派生したい。プロパティを追加すると、IDEで少しうまく動作するようになり、設計時にコーダーが変更できるようになります。

Public Class HighlightSplitContainer 
    Inherits SplitContainer 

    Property HighlightColor As Color = SystemColors.ControlDark 

    Protected Overrides Sub OnMouseEnter(e As System.EventArgs) 
     BackColor = HighlightColor 
     MyBase.OnMouseEnter(e) 
    End Sub 

    Protected Overrides Sub OnMouseLeave(e As System.EventArgs) 
     BackColor = SystemColors.Control 
     MyBase.OnMouseLeave(e) 
    End Sub 
End Class 
関連する問題