suspendlayoutc#怎么关闭messagebox

suspendlayout  时间:2021-06-05  阅读:()

C# 界面初始化时listview需要加载大量数据,求教提高速度的方法!!!

首先,一个列表里面有7万格项目是不合理的,因为你将没有办法通过拖动滚动条来准确定位,毕竟7万条记录的list滚动条得多小啊 其次,如果非要显示的话,建议使用异步填充,先组织好一批数据,然后填充这一批,期间UI线程还是可以相应的,这样虽然速度没有提升,但是用户体验会好一些 再次,如果要求必须一次填充完成的话,在开始填充时使用SuspendLayout(),挂起更新画面项目,然后在填充完以后ResumeLayout(true)恢复更新画面,并将前面挂起的画面更新恢复。

这样可以一定程度上节省更新的时间。

iewSample.SuspendLayout(); this.LoadListData(); iewSample.ResumeLayout(true); Ps: IsPostback是BS系统上面的,在你的Winform上没有意义。

金山词霸采用的是我说的第二种方案配合第三种方案,只加载一小部分,在你拖动滚动条的时候填充当前滚动条指定的那一段。

相当于分页。

上下滚动条vScrollBar怎么使用呀?我把滚动条放在PictureBox 里面,怎么让它们里面的内容发生滚动呢?

单就VScrollBar控件的使用来说,楼主可以参考下面的代码,但这可能并不能解决你的问题因为这还需要做很多其它的工作。

不过我还是愿意帮你解决问题而写了如下的一段代码,这是一个控件,可以放到窗体上运行后查看滚动条的效果,但或许有人能给楼主一更为完美的解决方案: C# code public partial class UserControl1 : UserControl { [StructLayout(LayoutKind.Sequential)] internal struct RECT { public int left; public ; public int right; public int bottom; public RECT(int left, , int right, int bottom) { this.left = left; =; this.right = right; this.bottom = bottom; } } [DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)] private static extern bool ScrollWindow(IntPtr hWnd, int nXAmount, int nYAmount, ref RECT rectScrollRegion, ref RECT rectClip); private System.Windows.Forms.VScrollBar vScrollBar1; private int m_Top; public UserControl1() { this.InitializeComponent(); this.SetStyle(ControlStyles.ResizeRedraw, true); m_Top = 0; this.vScrollBar1.Scroll += new ScrollEventHandler(vScrollBar1_Scroll); } private void InitializeComponent() { this.vScrollBar1 = new System.Windows.Forms.VScrollBar(); this.SuspendLayout(); // // vScrollBar1 // this.vScrollBar1.Location = new System.Drawing.Point(275, 57); this.vScrollBar1.Name = "vScrollBar1"; this.vScrollBar1.Size = new System.Drawing.Size(17, 80); this.vScrollBar1.TabIndex = 0; // // UserControl1 // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.Controls.Add(this.vScrollBar1); this.Name = "UserControl1"; this.Size = new System.Drawing.Size(304, 174); this.ResumeLayout(false); } private void setScrollBar() { this.vScrollBar1.Top = 0; this.vScrollBar1.Left = this.Width - this.vScrollBar1.Width; this.vScrollBar1.Height = this.Height; this.vScrollBar1.Maximum = 1000 - this.Height; this.vScrollBar1.LargeChange = this.Height; this.vScrollBar1.Maximum += this.vScrollBar1.LargeChange + 1; this.m_Top = this.vScrollBar1.Value; } private RECT getBodyRect() { int left = 0; = 0; int width = this.Width-this.vScrollBar1.Width; int height = this.Height; RECT rect = new RECT(left,, left + width,+height); return rect; } void vScrollBar1_Scroll(object sender, ScrollEventArgs e) { RECT vSRect = this.getBodyRect(); ScrollWindow(this.Handle, 0, -(e.NewValue - m_Top), ref vSRect, ref vSRect); m_Top = e.NewValue; } protected override void OnPaint(PaintEventArgs e) { base.OnPaint(e); Rectangle rect = new Rectangle(0, -m_Top, this.Width - this.vScrollBar1.Width, 1000); e.Graphics.DrawEllipse(SystemPens.ControlDark, rect); } protected override void OnLayout(LayoutEventArgs e) { if (e.AffectedControl == this) { this.setScrollBar(); } base.OnLayout(e); } } 百度把缩进都给屏蔽了。

你将就看吧,或者复制到ide里格式化一下吧

c# 子窗口怎样添加控件?

DataGridView dg = new DataGridView(); this.Controls.Add(dg); 在窗体中的位置用dg.Left=100和dg.Top=100;来调整

c#怎么关闭messagebox

using?System; using?System.Drawing; using?System.Collections; using?System.ComponentModel; using?System.Windows.Forms; using?System.Data; using?System.Runtime.InteropServices; namespace?MyTest ...{ ????/**////?<summary> ????///?Form1?的摘要说明。

????///?</summary> ????public?class?Form1?:?System.Windows.Forms.Form ????...{ ????????private?System.Windows.Forms.Button?button1; ????????/**////?<summary> ????????///?必需的设计器变量。

????????///?</summary> ????????private?ponents?=?null; ????????public?Form1() ????????...{ ????????????// ????????????//?Windows?窗体设计器支持所必需的 ????????????// ????????????InitializeComponent(); ????????????// ????????????//?TODO:?在?InitializeComponent?调用后添加任何构造函数代码 ????????????// ????????} ????????/**////?<summary> ????????///?清理所有正在使用的资源。

????????///?</summary> ????????protected?override?void?Dispose(?bool?disposing?) ????????...{ ????????????if(?disposing?) ????????????...{ ????????????????if?ponents?!=?null)? ????????????????...{ ???????????????????ponents.Dispose(); ????????????????} ????????????} ????????????base.Dispose(?disposing?); ????????} ????????Windows?窗体设计器生成的代码#region?Windows?窗体设计器生成的代码 ????????/**////?<summary> ????????///?设计器支持所需的方法?-?不要使用代码编辑器修改 ????????///?此方法的内容。

????????///?</summary> ????????private?void?InitializeComponent() ????????...{ ????????????this.button1?=?new?System.Windows.Forms.Button(); ????????????this.SuspendLayout(); ????????????//? ????????????//?button1 ????????????//? ????????????this.button1.Location?=?new?System.Drawing.Point(176,?48); ????????????this.button1.Name?=?"button1"; ????????????this.button1.Size?=?new?System.Drawing.Size(96,?24); ????????????this.button1.TabIndex?=?0; ????????????this.button1.Text?=?"button1"; ????????????this.button1.Click?+=?new?System.EventHandler(this.button1_Click); ????????????//? ????????????//?Form1 ????????????//? ????????????this.AutoScaleBaseSize?=?new?System.Drawing.Size(6,?14); ????????????this.ClientSize?=?new?System.Drawing.Size(292,?266); ????????????this.Controls.Add(this.button1); ????????????this.Name?=?"Form1"; ????????????this.Text?=?"Form1"; ????????????this.ResumeLayout(false); ????????} ????????#endregion ????????/**////?<summary> ????????///?应用程序的主入口点。

????????///?</summary> ????????[STAThread] ????????static?void?Main()? ????????...{ ????????????Application.Run(new?Form1()); ????????} ????????private?void?button1_Click(object?sender,?System.EventArgs?e) ????????...{ ????????????StartKiller(); ????????????MessageBox.Show("这里是MessageBox弹出的内容","MessageBox"); ????????????MessageBox.Show("这里是跟随运行的窗口","窗口"); ????????} ????????private?void?StartKiller() ????????...{ ????????????Timer?timer?=?new?Timer(); ????????????timer.Interval?=?10000;????//10秒启动 ????????????timer.Tick?+=?new?EventHandler(Timer_Tick); ????????????timer.Start(); ????????} ????????private?void?Timer_Tick(object?sender,?EventArgs?e) ????????...{ ????????????KillMessageBox(); ????????????//停止计时器 ????????????((Timer)sender)(); ????????} ????????private?void?KillMessageBox() ????????...{ ????????????//查找MessageBox的弹出窗口,注意对应标题 ????????????IntPtr?ptr?=?FindWindow(null,"MessageBox"); ????????????if(ptr?!=?IntPtr.Zero) ????????????...{ ????????????????//查找到窗口则关闭 ????????????????PostMessage(ptr,WM_CLOSE,IntPtr.Zero,IntPtr.Zero); ????????????} ????????} ????????[DllImport("user32.dll",?EntryPoint?=?"FindWindow",?CharSet=CharSet.Auto)] ????????private?extern?static?IntPtr?FindWindow(string?lpClassName,?string?lpWindowName); ????????[DllImport("user32.dll",?CharSet=CharSet.Auto)] ????????public?static?extern?int?PostMessage(IntPtr?hWnd,?int?msg,?IntPtr?wParam,?IntPtr?lParam); ????????public?const?int?WM_CLOSE?=?0x10; ????}

港云网络(¥1/月活动机器),香港CN2 4核4G 1元/月 美国CN2

港云网络官方网站商家简介港云网络成立于2016年,拥有IDC/ISP/云计算资质,是正规的IDC公司,我们采用优质硬件和网络,为客户提供高速、稳定的云计算服务。公司拥有一流的技术团队,提供7*24小时1对1售后服务,让您无后顾之忧。我们目前提供高防空间、云服务器、物理服务器,高防IP等众多产品,为您提供轻松上云、安全防护。点击进入港云网络官方网站港云网络中秋福利1元领【每人限量1台】,售完下架,活...

妮妮云80元/月,香港站群云服务器 1核1G

妮妮云的来历妮妮云是 789 陈总 张总 三方共同投资建立的网站 本着“良心 便宜 稳定”的初衷 为小白用户避免被坑妮妮云的市场定位妮妮云主要代理市场稳定速度的云服务器产品,避免新手购买云服务器的时候众多商家不知道如何选择,妮妮云就帮你选择好了产品,无需承担购买风险,不用担心出现被跑路 被诈骗的情况。妮妮云的售后保证妮妮云退款 通过于合作商的友好协商,云服务器提供2天内全额退款,超过2天不退款 物...

江苏云服务器 2H2G 20M 79元/月 大宽带159元/月 高性能挂机宝6元/月 香港CN2 GIA、美国200G防御 CN2 GIA 折后18元/月 御速云

介绍:御速云成立于2021年的国人商家,深圳市御速信息技术有限公司旗下品牌,为您提供安全可靠的弹性计算服务,随着业务需求的变化,您可以实时扩展或缩减计算资源,使用弹性云计算可以极大降低您的软硬件采购成本,简化IT运维工作。主要从事VPS、虚拟主机、CDN等云计算产品业务,适合建站、新手上车的值得选择,拥有华东江苏、华东山东等国内优质云产品;香港三网直连(电信CN2GIA联通移动CN2直连);美国高...

suspendlayout为你推荐
宝应中学宝应县有哪些高中匹配函数excel中vlookup函数的用法水晶易表如何在win7环境和office2010环境下成功安装水晶易表应用雷达雷达有什么用途oa办公系统下载办公软件下载哪里可以下载啊?主要是公司准备搞这个东西,我先看看什么情况vga接口定义VGA接口的15针分别接什么?自定义表情手机QQ自定义表情怎么添加数据挖掘项目什么是数据挖掘?从事相关的工作有什么要求?什么是生态系统生态系统的我主要特征是什么?审计平台什么叫数据库审计系统?
美国网站空间 域名解析文件 花生壳免费域名 希网动态域名 hkbn 空间打开慢 sockscap 12306抢票攻略 网站cdn加速 吉林铁通 申请免费空间和域名 存储服务器 蓝队云 美国主机 cdn加速技术 godaddy中文 删除域名 alexa搜 服务器是什么 asp.net虚拟主机 更多