如何給Winform的Panel控件添加滾動條
winform
panel設置AutoScroll為True,當panel內控件超出panel范圍時,就會顯示滾動條,如下所示:
AutoScroll
屬性說明
獲取或設置一個值,該值指示容器是否允許用戶滾動到任何放置在其可見邊界之外的控件。
public
virtual
bool
AutoScroll
{
get;
t;
}
屬性值
Type:
System.Boolean
如果容器允許自動滾動,則為
true;否則為
fal。默認值為
fal。
備注
為
true
時,此屬性允許容器有一個大于其可見邊界的虛擬大小。
當前
Windows
窗體中有一個限制,當啟用了
RightToLeft
并且將
AutoScroll
設置為
Yes
時,該限制會使派生自
ScrollableControl
的所有類無法正確操作。例如,假設在窗體上放置了一個控件(如
Panel)或從
Panel
派生的容器類(如
FlowLayoutPanel
或
TableLayoutPanel)。如果將容器的
AutoScroll
設置為
Yes,然后將容器內部的一個或多個控件的
Anchor
屬性設置為
Right,則不會顯示任何滾動條。從
ScrollableControl
派生的類的行為與
AutoScroll
設置為
No
時的行為類似。
如何給Winform 的Panel控件添加滾動條
winform
panel設置AutoScroll為True,當panel內控件超出panel范圍時,就會顯示滾動條,如下所示:
AutoScroll
屬性說明
獲取或設置一個值,該值指示容器是否允許用戶滾動到任何放置在其可見邊界之外的控件。
public
virtual
bool
AutoScroll
{
get;
t;
}
屬性值
Type:
System.Boolean
如果容器允許自動滾動,則為
true;否則為
fal。默認值為
fal。
備注
為
true
時,此屬性允許容器有一個大于其可見邊界的虛擬大小。
當前
Windows
窗體中有一個限制,當啟用了
RightToLeft
并且將
AutoScroll
設置為
Yes
時,該限制會使派生自
ScrollableControl
的所有類無法正確操作。例如,假設在窗體上放置了一個控件(如
Panel)或從
Panel
派生的容器類(如
FlowLayoutPanel
或
TableLayoutPanel)。如果將容器的
AutoScroll
設置為
Yes,然后將容器內部的一個或多個控件的
Anchor
屬性設置為
Right,則不會顯示任何滾動條。從
ScrollableControl
派生的類的行為與
AutoScroll
設置為
No
時的行為類似。
關于C#使用 winform,在panel 里設置滾動條不啟作用解決辦法
本人在做一個軟件,winform,一個主的界面中放置了一個panel,然后多個子form 在 主界面中的panel 做切換。因為子form里面控件太多,大概要1.5-2屏幕才能放下,所以把主form 的 panel的autoscroll設置為true,但發布后,窗體上并沒有滾動條,經過三翻五次嘗試。
解決辦法:在子界面的form 界面設計中,把 autoScroll 設置為ture,即可。發布后,滾動條出現了。 其它地方不用動。
怎樣設置Panel的滾動條的位置
1、ScrollView 的滾動條默認置頂,若想設置它的位置,可以使用mScrollView.smoothScrollTo(x,y)方法,可達到效果。
2、crollTo方法可以調整view的顯示位置。在需要的地方調用以下方法即可。
3、scroll表示外層的view,inner表示內層的view,其余內容都在inner里。
注意,方法中開一個新線程是必要的。否則在數據更新導致換行時getMeasuredHeight方法并不是最新的高度。
public static void scrollToBottom(final View scroll, final View inner) {
Handler mHandler = new Handler();
mHandler.post(new Runnable() {
public void run() {
if (scroll == null || inner == null) {
return;
}
int offt = inner.getMeasuredHeight() - scroll.getHeight();
if (offt < 0) {
offt = 0;
C#panel的滾動條
panel是沒有鼠標滾輪事件的,那是針對主容器載體form的。我簡單舉例,拖一個winform,然后拖一個panel,在panel里代碼添加一個panel,通過數據庫數據生成高度超出容器就出現滾動條,子panel模板top初始化為0,左右滿屏,底部讓容器覆蓋隱藏,滾動條你自己用panel畫一個漂亮點的,mouWheel事件觸發的時候就控制模板的top++或者--,注意臨界值,不要一直遞增,到頂了要停。旁邊畫的滾動條也跟著變化顯示一下狀態,就這么簡單。
滾動事件:
voidmouWheel(objectnder,MouEventArg)
{
if(e.Delta>0)
{
panel2.Top++;//下滾
}
el
{
//上滾
panel2.Top--;
}
}
然后加入事件:
privatevoidForm1_Load(objectnder,EventArg)
{
this.MouWheel+=newMouEventHandler(mouWheel);
}