C# Winform 滚动条的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# Winform 滚动条的问题相关的知识,希望对你有一定的参考价值。

C# Winform

tabControl中有个treeView 当内容太多时tabControl就会自动加滚动条 显示到窗口最下方(也就是滚动条底部) 我希望他显示最上方(滚动条顶部)不知道该如何设置,或怎么实现

1)在窗体上布置一个Panel,在Panel中布置一个PictureBox。让在PictureBox中加载一张大的图片,如图: 2)Form1.cs,代码如下: 运行程序,拖动滚动条滑块,图片就会连续显示,显示结果如图: 参考技术A 每次添加新结点后,就设置一次,treeView.SelectedNode=fristNode本回答被提问者采纳 参考技术B 应该不用设置的,直接显示展开节点的十字那 参考技术C 你选中最上方的节点,不就自动滚动到最上方了吗?追问

不行呀

追答

截个图看看吧

C#中GridView设置滚动条的问题。

代码如下:
<div style="width:100%; overflow:scroll; clear:both;">
<asp:GridView ID="gvBargain" runat="server" AutoGenerateColumns="False" CssClass="gridview_m"
Style="text-align: center" OnRowDataBound="gvBargain_RowDataBound" Width="1300px">
<Columns>
<asp:BoundField HeaderText="编号">
<ItemStyle Width="40px" />
</Columns>
</asp:GridView>
</div>

我想要的效果是:
div随着屏幕的大小100%而适应;
如果Gridview的宽度大于了屏幕也是在div里面,div显示滚动条!然而上诉的代码是div跟着gridview的宽度而变化。
高手求救,在线等。。。。。

<div style="width:100%; overflow:scroll; clear:both;"></div>
问题出在这个div了,和GridView没关系。
你可以这样做:
前台:
<div id=’divGridView‘ runat=‘server’ >
<asp:GridView ID="gvBargain" runat="server" AutoGenerateColumns="False" CssClass="gridview_m"
Style="text-align: center" OnRowDataBound="gvBargain_RowDataBound" Width="1300px">
<Columns>
<asp:BoundField HeaderText="编号">
<ItemStyle Width="40px" />
</Columns>
</asp:GridView>
</div>
后台:
................
this.divGridView.Attributes["style"] = "width:770px;overflow:auto;"
+ (dt.Rows.Count >= 30 ? "height:480px" : string.Empty);
其中的dt表示要绑定到gvBargain上的DataTable,这个语句就是当要绑定的数据dt.Rows.Count
大于你设置的行数(这里我设置的是30)时候显示滚动条否则不显示。div的高度和超过多少行时显示滚动条,你可以自己调试,看看具体有多少行时需要显示,就可以了。

追问

this.divGridView.Attributes["style"] = "width:770px;overflow:auto;"
+ (dt.Rows.Count >= 30 ? "height:480px" : string.Empty);
这样的话,width:770px 还是给div固定了大小,我想让他等于当前窗口的大小

追答

那你可以获取当前的窗口的大小再付给宽度和高度啊。

参考技术A 首先,你设置成100%是绝对不行的,必须是固定值,要想div适应屏幕可以用js来设置div的高和宽,如:<div style="overflow:auto;" id="divGridView">
<script type="text/javascript">
window.onload = function()
var scrollwidth = document.body.clientWidth - 10;
var scrollheight = document.body.clientHeight - 10;
document.getElementById("divGridView").style.width = scrollwidth;
document.getElementById("divGridView").style.height = scrollheight;

</script>
减去10,是为了留出边距,你可以根据你的页面调整这个值的大小
参考技术B <div style="width:100%; border:2px solid red; overflow:scroll; clear:both;">
<input id="Text1" type="text" style="width:1300px;border:2px solid blue;" />
</div>
验证无误,而且,感觉你那个代码也没啥问题,不知道是哪里出了问题。是body设置了width还是怎么的?

以上是关于C# Winform 滚动条的问题的主要内容,如果未能解决你的问题,请参考以下文章

c# datagridview 滚动条问题

C#中GridView设置滚动条的问题。

请问:C# listView控件如何判断滚动条的位置?判断滚动条在控件的最下面?

C#winform 怎么设置自动竖直滚动条

C# 如何控制ListBox滚动条的滚动。

C#—>winform 滚动条