C#里有没有类似ScrollWindow可以滚动窗体内容的函数?

北京的雾霾天 2006-02-27 02:14:24
如题,C#里有没有类似ScrollWindow这个API函数的函数或操作,我想实现窗体内容的整体或部分显示内容的平移操作,而不想在我的程序里因为这个操作而加上对系统API的调用。请指教!
...全文
316 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
北京的雾霾天 2006-03-31
  • 打赏
  • 举报
回复
........
看来我只有用CopyFromScreen
wxdl1981 2006-02-28
  • 打赏
  • 举报
回复
>>hbxtlhx(平民百姓)

你好!
很报歉,我们把你的问题复杂化了.

1. 将窗体上的所有内容可以放在Panel中.
2. Panel大小设成比窗体大.
3. 在代码中调整Panel的位置(Top < 0, Left < 0)

例如:
void ScrollWindow(int x, int y)
{
panel1.Left += x;
panel1.Top += y;
}
duncansun 2006-02-28
  • 打赏
  • 举报
回复
帮你顶一下^_^
北京的雾霾天 2006-02-28
  • 打赏
  • 举报
回复
楼上的各位,你们是不是没有使用过ScrollWindow这个函数呢,你们所说的方法都和这个函数不一样,我所要实现的这个函数所实现的功能,是把一个没有滚动条的一个界面整体移动的函数。
请你们看清楚了啊。。。。。。
lidong6 2006-02-28
  • 打赏
  • 举报
回复
楼上老兄,用.NET写的程序还想运行在哪?
wxdl1981 2006-02-27
  • 打赏
  • 举报
回复
API函数固然强大,但是只要你的程序使用了任何一个API, 就意味着你的程序只能在Windows(而且是x86 Windows)中运行了.
wxdl1981 2006-02-27
  • 打赏
  • 举报
回复
还有一个窗体的方法AutoScrollPosition
只要设置
this.AutoScrollPosition = new Point(0, y);
就行了.

读这个值的时候要注意:

http://msdn.microsoft.com/library/chs/default.asp?url=/library/CHS/cpref/html/frlrfsystemwindowsformsscrollablecontrolclassautoscrollpositiontopic.asp
wxdl1981 2006-02-27
  • 打赏
  • 举报
回复
如果只是想通过界面滚动的话
设置窗体的AutoScroll属性则可

对于背景图, 你只要把它放置在pictureBox控件中就可以了.

而且, 窗体上的内容可以放在Panel中. Panel可以调到很大. 这样就可以实现滚动了.
我的女神 2006-02-27
  • 打赏
  • 举报
回复
没有,你需要导入DLL,
导入后需要注意指针的类型。
lidong6 2006-02-27
  • 打赏
  • 举报
回复
例如,System.IO.File.MoveFile(string,string)的源码:
[DllImport("kernel32.dll", CharSet=CharSet.Auto, SetLastError=true)]
internal static extern bool MoveFile(string src, string dst);

lidong6 2006-02-27
  • 打赏
  • 举报
回复
为什么不能调用API? .NET 类库并没有实现程序员所需要的所有功能,那些没有实现的功能只能依靠调用API.
再说了,类库的实现都是通过调用API来实现的,为什么自己就不能调用API呢?
北京的雾霾天 2006-02-27
  • 打赏
  • 举报
回复
楼上说的是对的,可是我不想调用API实现这个做法。有没有什么办法?
zeusvenus 2006-02-27
  • 打赏
  • 举报
回复
楼上说的那个和楼主的要求不一样,定位到哪个控件的容易,但要窗体某部分平移C#里没有直接完成楼主要求的函数,需要调API。
北京的雾霾天 2006-02-27
  • 打赏
  • 举报
回复
多谢wxdl1981(沉默之狼) 的回答,可是你所说的不是我想要的。
我想指定滚动的量。而不是通过自动滚动来让一个控件显示出来,如果一个窗体里面没有任何控件是而是背景图,那我怎么样来滚动呢?

我想作到和API函数ScrollWindow一样的或相近的功能!
wxdl1981 2006-02-27
  • 打赏
  • 举报
回复
如果你是想通过代码来完成的话
this.ScrollControlIntoView(control)
只要指定你要显示出的control, 窗体会自动滚动到这个控件的位置

如果只是想通过界面滚动的话
设置窗体的AutoScroll属性则可

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧