ListBox
IDがmyList
のコントロールがあります。これには50個のアイテムが追加されています。垂直スクロールバーは、コントロールの右側に必然的に表示されます。二つの関連質問:私は、スクロールバーが表示されないように にmyList.Height
を設定するためにどのような値、実行時に決定するにはどうすればよい垂直スクロールバーを削除するために必要なListBoxの高さを確認する
?
1つの行に必要な高さ(パディングあり)を決定するにはどうすればよいですか?
フォントは(国際化)に変更されるので、この場合、フォームがロード動的する必要がある場合myList.ClientSize.Height
の値が変化します。
注:「なぜスクロールバーを削除するのか」という疑問がある場合は、ListBox
を親コントロールに置き、上/下ボタンのクリックに応じてmyList.Top
を変更することで、スクロールを個別に処理します。
残念ながら、 'coredll.dll'は' ShowScrollbar'メソッドをエクスポートしないので、これは動作しません。 'P/Invoke'をある程度使っているマネージアプリケーションでは、アプリケーションライフサイクルの早い段階で' Marshal.PrelinkAll(this.GetType()); 'を呼び出して、 'P/Invoke'メソッドがすべて利用可能であることを確認するのが賢明です。私のアプリケーションはすぐに 'ShowScrollbar'の例外をスローします。 – AlainD
リンクされた質問にこのメソッドをまだ試していない... – AlainD
この記事で提案されている素晴らしい回避策:https://www.pcreview.co.uk/threads/hiding-vertical-scrollbar-in-listbox.2890942 /は、スクロールバーが不要になるようにListBoxまたはListViewの項目数を制限するだけです。次に、ページ番号を変更し、ビューを更新して上下にスクロールします。 – AlainD