社区
C#
帖子详情
关于ComboBox的下拉列表窗口!
xtky_limi
2003-05-20 03:50:58
有那位在虾知道ComboBox的下拉列表窗口是在什么时候重绘的,我如果想改变此下拉列表窗口的显示位置应该怎么做?不能改变ComboBox的Edit框的位置。
...全文
219
14
打赏
收藏
关于ComboBox的下拉列表窗口!
有那位在虾知道ComboBox的下拉列表窗口是在什么时候重绘的,我如果想改变此下拉列表窗口的显示位置应该怎么做?不能改变ComboBox的Edit框的位置。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jonescheng
2003-06-18
打赏
举报
回复
gz
xwyou
2003-06-09
打赏
举报
回复
我也有这样的需求,谁能实现,我有分
xtky_limi
2003-06-04
打赏
举报
回复
如果只是想显示多列,是很简单的,关键部分就是重载OnDrawItem(DrawItemEventArgs e)
就可以了。
xtky_limi
2003-05-26
打赏
举报
回复
to hhzh426(春之风)
窗口是在那个事件发生时弹出的,可是我就是想改那个弹出的下拉窗口的位置,你知道怎么改吗?或者你知道那个窗口的句柄怎么得到也行。
长风Eric(fengcan)
2003-05-26
打赏
举报
回复
老兄,可以把程序贴出来一起研究一下吗?我也在做这个控件
xtky_limi
2003-05-22
打赏
举报
回复
up
hhzh426
2003-05-22
打赏
举报
回复
ComboBox类有个DropDown事件。
xtky_limi
2003-05-21
打赏
举报
回复
to tjq_tang(重新开始)
谢谢,它是从userctrl继承的,并不符合我所说情况。
有谁知道C#中ComboBox的下拉列表选择窗口是什么时候生成并弹出的吗?
tjq_tang
2003-05-20
打赏
举报
回复
可以参见
http://www.codeproject.com/useritems/dropdowntree.asp
的DropDown TreeView Control Sample 例子.能否给你一些提示
SimonSnow
2003-05-20
打赏
举报
回复
gz
xtky_limi
2003-05-20
打赏
举报
回复
to Knight94(愚翁)
这个我已经写了。
现在问题是我想要移动此下拉列表窗口的位置( 注意,非下拉项 ),而并非移动下拉窗口中的下拉项的位置?!请问怎么解决。
另附我的重载函数( 已经解决了多列显示及查询 dvSource 即相当于DataSource ):
protected override void OnDrawItem(DrawItemEventArgs e)
{
base.OnDrawItem(e);
try
{
if( e.Index < 0 )
return;
e.Graphics.FillRectangle(new SolidBrush(e.BackColor), e.Bounds );
int intX = e.Bounds.Left;
int intY = e.Bounds.Top;
Pen penGrid = new Pen( new SolidBrush(Color.DarkGray), 1 );
int intColumns = this.strSizeArray.Length > this.dvSource.Table.Columns.Count ? this.dvSource.Table.Columns.Count : this.strSizeArray.Length;
int intIncrease = 0;
for(int i = 0; i < intColumns; i++)
{
int nColWidth = Convert.ToInt16(this.strSizeArray[i]);
if( nColWidth > 0 )
{
e.Graphics.DrawRectangle( penGrid, intX + intIncrease, intY, nColWidth, e.Bounds.Height );
e.Graphics.DrawString( this.dvSource[e.Index][i].ToString(), e.Font, new SolidBrush( e.ForeColor ), intX + intIncrease , intY + 3 );
intIncrease += nColWidth ;
}
}
}
catch( System.Exception ex)
{
this.setPromptStr( ex.ToString() );
}
}
Knight94
2003-05-20
打赏
举报
回复
那你需要自己写,从Combo继承过来,在DrawItem进行重画
xtky_limi
2003-05-20
打赏
举报
回复
哦,那样太多的数据时会显得慢。而且我现在已经写了一个多列的ComboBox,就是当此ComboBox离窗口右边的边界很近且它的下拉列表宽度设置太宽而超出屏幕范围时我需要把下拉的窗口的位置调整一个。
其实我只要能在下拉窗口显示前找到这个下拉窗口的句柄就行了?!我不知道在.net中有什么方法可找到此窗口的句柄?
fastxyf
2003-05-20
打赏
举报
回复
用TEXT+BUTTON+LIST做还简单一些
vs2008演示
ComboBox
下拉列表
控件的使用实例
vs2008演示演示
ComboBox
下拉列表
控件的使用实例
Combobox
下拉列表
显示图片.zip
在
COMBOBOX
下拉框中显示图片。
解决
combobox
随
窗口
变化大小后不显示
下拉列表
问题
解决
combobox
随
窗口
变化大小后不显示
下拉列表
问题
VC.NET2005_
ComboBox
下拉列表
框
VC.NET2005_
ComboBox
下拉列表
框。包括2个实例,一个work文档资料。
ComboBox
下拉框内字体加颜色
ComboBox
下拉框内字体加颜色 在
COMBOBOX
内重画得到的字体加颜色
C#
111,120
社区成员
642,545
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章