c# listbox控件利用Sendmessage使滚动条向下

usingSystem.Runtime.InteropServices;[DllImport("User32.dll")]privatestaticexternInt32... using System.Runtime.InteropServices;

[DllImport("User32.dll")]
private static extern Int32 SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
public const int WM_VSCROLL = 0x0115;
public const int SB_LINEDOWN = 1;
public const int SB_PAGEDOWN = 3;
public const int SB_BOTTOM = 7;
public System.Web.UI.WebControls.ListBox listBox1;
private void button1_Click(object sender, EventArgs e)
{
var listBox1 = new ListBox();
SendMessage(listBox1.Handle, WM_VSCROLL, SB_LINEDOWN, 0);
}

在SendMessage里面的Handle说没有定义,怎么办?
按Light Black说的注释之后就说listBox1不存在,把listBox1换成ListBox1就说Handle没有定义

这个是可以调用的,不知道把这句var listBox1 = new ListBox();换成什么就没有问题了,我昨晚完成过,但错手删除了,想找回昨晚的网页就怎么找也找不到了

我只是想把ListBox的滚动条置底,而不用SelectIndex,因为选中状态很难看

网站是web程序么?

按yaoshanpl说的做,出现了全部页面的控件都没有定义的情况,请问是用WinForm做的代码么?
如果只取其中的代码,还是出现原来的问题,handle没有定义

按yaoshanpl说的做, 还是不行

页面已经有ListBox1还是不行,我是用timer刷新Listbox的

高手啊,要帮帮小弟啊!!

解决问题加绝对加分!!!
展开
 我来答
茂烟f
2010-06-13 · TA获得超过329个赞
知道小有建树答主
回答量:666
采纳率:0%
帮助的人:659万
展开全部
System.Web.UI.WebControls.ListBox
是web控件
SendMessage 只针对 Winform下控件可用

你是Winform程序还是 web程序

Web程序不能用API来操作
---------------------- asp.net 实现 -------------------------------
<asp:ListBox ID="ListBox1" runat="server">
<asp:ListItem>1</asp:ListItem>
<asp:ListItem>2</asp:ListItem>
<asp:ListItem>3</asp:ListItem>
<asp:ListItem>4</asp:ListItem>
<asp:ListItem>5</asp:ListItem>
<asp:ListItem>6</asp:ListItem>
<asp:ListItem>7</asp:ListItem>
<asp:ListItem>8</asp:ListItem>
<asp:ListItem>9</asp:ListItem>
</asp:ListBox>
<script type="text/javascript">
window.onload = function()
{
var sl= document.getElementById('<%=this.ListBox1.ClientID %>');
sl.scrollTop=sl.scrollHeight;
}
</script>
--------------------------------------------
你查msdn System.Web.UI.WebControls.ListBox 控件没有Handle属性的
------------ winForm 实现 -------------------
在窗体上添加 ListBox 控件

using System.Runtime.InteropServices;
namespace WindowsApplication1
{
public partial class Form1 : Form
{
[DllImport("User32.dll")]
private static extern Int32 SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
public const int WM_VSCROLL = 0x0115;
public const int SB_LINEDOWN = 1;
public const int SB_PAGEDOWN = 3;
public const int SB_BOTTOM = 7;
private void button1_Click(object sender, EventArgs e)
{
SendMessage(this.listBox1.Handle, WM_VSCROLL, SB_BOTTOM, 0);

}
代码如上
//
-----------------晕哦 -------------
第一个 在新的页面上 复制进去就可以了
不需要任何代码
第二个是 winForm 程序 部分代码
---------------------------------------
【老大 请不要用 winForm 的方式来做web 程序。。。。】
百度网友331112cc1
2010-06-12 · TA获得超过1310个赞
知道小有建树答主
回答量:1070
采纳率:100%
帮助的人:437万
展开全部
在窗口中先添加一个ListBox。

[DllImport("User32.dll")]
private static extern Int32 SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
public const int WM_VSCROLL = 0x0115;
public const int SB_LINEDOWN = 1;
public const int SB_PAGEDOWN = 3;
public const int SB_BOTTOM = 7;
//public System.Web.UI.WebControls.ListBox listBox1;
private void button1_Click(object sender, EventArgs e)
{
// var listBox1 = new ListBox();
SendMessage(listBox1.Handle, WM_VSCROLL, SB_LINEDOWN, 0);
}
--------------------

我的意思是你先在窗口中添加一个ListBox 然后再在事件中使用。

----------------
你的是Web程序啊?怪不得...
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
谬歌东郭飞薇
2019-03-03 · TA获得超过3547个赞
知道大有可为答主
回答量:3063
采纳率:27%
帮助的人:201万
展开全部
System.Web.UI.WebControls.ListBox
是web控件
SendMessage
只针对
Winform下控件可用
你是Winform程序还是
web程序
Web程序不能用API来操作
----------------------
asp.net
实现
-------------------------------
<asp:ListBox
ID="ListBox1"
runat="server">
<asp:ListItem>1</asp:ListItem>
<asp:ListItem>2</asp:ListItem>
<asp:ListItem>3</asp:ListItem>
<asp:ListItem>4</asp:ListItem>
<asp:ListItem>5</asp:ListItem>
<asp:ListItem>6</asp:ListItem>
<asp:ListItem>7</asp:ListItem>
<asp:ListItem>8</asp:ListItem>
<asp:ListItem>9</asp:ListItem>
</asp:ListBox>
<script
type="text/javascript">
window.onload
=
function()
{
var
sl=
document.getElementById('<%=this.ListBox1.ClientID
%>');
sl.scrollTop=sl.scrollHeight;
}
</script>
--------------------------------------------
你查msdn
System.Web.UI.WebControls.ListBox
控件没有Handle属性的
------------
winForm
实现
-------------------
在窗体上添加
ListBox
控件
using
System.Runtime.InteropServices;
namespace
WindowsApplication1
{
public
partial
class
Form1
:
Form
{
[DllImport("User32.dll")]
private
static
extern
Int32
SendMessage(IntPtr
hWnd,
int
Msg,
int
wParam,
int
lParam);
public
const
int
WM_VSCROLL
=
0x0115;
public
const
int
SB_LINEDOWN
=
1;
public
const
int
SB_PAGEDOWN
=
3;
public
const
int
SB_BOTTOM
=
7;
private
void
button1_Click(object
sender,
EventArgs
e)
{
SendMessage(this.listBox1.Handle,
WM_VSCROLL,
SB_BOTTOM,
0);
}
代码如上
//
-----------------晕哦
-------------
第一个
在新的页面上
复制进去就可以了
不需要任何代码
第二个是
winForm
程序
部分代码
---------------------------------------
【老大
请不要用
winForm
的方式来做web
程序。。。。】
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式