VB.NET で Winform を作成し、Splitter コントロールを追加して、実行時にパネルのサイズを変更できるようにしました。
私の問題は、スプリッター コントロールがはっきりしないことです。ユーザーがフォームのサイズを変更できることを知っているように表示したいと思います。現時点では、基本的に色を変更しただけですが、見た目が好きではありません。
パネルがサイズ変更可能であることをユーザーがすぐに理解できるように、このコントロールを使用する適切な方法を誰か教えてもらえますか?
私はボーダートリック(あなたが投稿したもの)を提案しようとしていました。私が通常行うもう 1 つのことは、スプリッター コントロールの 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;
}
そうすれば、マウスがスプリッターを通過すると、スプリッターが「点灯」(というか、シャドウダウン...) し、そこに操作できるコントロールがあることに注意が向けられます。
すべてのスプリッターを同じように機能させることができるように、コントロールを導出するのが好きです。プロパティを追加すると、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
SplitterWidth プロパティをより大きな値に設定して、より見やすくすることができます。
マウスがスプリッター コントロール上にあるときに、マウス カーソルを変更することもできます。同様のアイデアは、マウスがコントロール上にあるときにツールヒント テキストを表示することです。
わかった、
パネルに境界線を設定すると、パネルのサイズを変更できるように見えます。
境界線を設定していなかったため、スプリッターは表示されませんでした。