惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
S
SegmentFault 最新的问题
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Attack and Defense Labs
Attack and Defense Labs
F
Full Disclosure
Vercel News
Vercel News
N
News | PayPal Newsroom
The GitHub Blog
The GitHub Blog
H
Hacker News: Front Page
H
Heimdal Security Blog
P
Privacy International News Feed
博客园 - 司徒正美
Google DeepMind News
Google DeepMind News
N
Netflix TechBlog - Medium
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
C
Cisco Blogs
L
Lohrmann on Cybersecurity
D
Docker
Recent Announcements
Recent Announcements
Security Archives - TechRepublic
Security Archives - TechRepublic
人人都是产品经理
人人都是产品经理
C
CXSECURITY Database RSS Feed - CXSecurity.com
P
Proofpoint News Feed
T
Tailwind CSS Blog
C
Check Point Blog
博客园 - 叶小钗
Google Online Security Blog
Google Online Security Blog
Martin Fowler
Martin Fowler
Stack Overflow Blog
Stack Overflow Blog
博客园 - 聂微东
S
Secure Thoughts
博客园 - Franky
博客园_首页
阮一峰的网络日志
阮一峰的网络日志
P
Palo Alto Networks Blog
Latest news
Latest news
量子位
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园 - 三生石上(FineUI控件)
The Cloudflare Blog
Last Week in AI
Last Week in AI
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Cyberwarzone
Cyberwarzone
小众软件
小众软件
Cisco Talos Blog
Cisco Talos Blog
Hacker News: Ask HN
Hacker News: Ask HN
T
Threatpost
T
Tenable Blog
P
Privacy & Cybersecurity Law Blog
WordPress大学
WordPress大学

博客园 - zqonline

vs2015 添加行件 关于 OpenSmtp 邮件标题过长后出现乱码问题的解决 获取 httponly 的 cookie 大文本编辑程序 混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集。 加速度传感器与车祸报警解决方案 sqlserver2008里创建系统管理员 iis+php 运行wordpress所遇到的问题 wince文件同步代码[转] 使用edtftpnet上传文件到Serv-U出现乱码的问题,并且不能创建中文文件名或文件夹。 升级程序到.net 4.0 发现log4net不工作与log4net conversionPattern 说明 uc密码产生方式。 SQLite数据库参数化编程时,采用命名参数的方式 System.Data.SQLite 不能在.net 4.0 里引用的解决方法 初次使用json数据格式,发生的常识性错误。 我电脑上的mssql2000居然,被黑了,在还原数据时提示:无法装载DLL Microsoft提示请误随意操作SQL数据库,以免对数据库造成不必要的麻烦或DLL所引用的某一DLL。原因:126(找不到指定模块) 解决SQL2000出现"无法执行查询,因为文件缺少或未注册。再次运行安装程序确保要求的文件已注册。"的方法 wordpress ImetaWeblog 运行时出现 “child”不是此父级的子控件。
Winforms下使用TableLayoutPanel进行布局,并解决闪烁及平均列宽与平均行高问题
zqonline · 2011-11-28 · via 博客园 - zqonline

TableLayoutPanel控件,可以类似于在web下面进行表格布局,最近正好需要,使用了感觉,还是比较简单,但是有一个严重的问题。就是在更改布局时,闪烁严重。通过Google得知,可能修改DoubleBuffered属性,解决这个问题,但是DoubleBuffered是继承可见,这时只好用反射来处理了。

TableLayoutPanel1.GetType().GetProperty("DoubleBuffered", System.Reflection.BindingFlags.Instance Or System.Reflection.BindingFlags.NonPublic).SetValue(TableLayoutPanel1, True, Nothing)

Demo代码片断

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click


        Me.TableLayoutPanel1.RowCount = 1
        Me.TableLayoutPanel1.ColumnCount = 1
        Me.TableLayoutPanel1.Controls.Clear()

        Dim value As String = InputBox("输入控件数量:", "提示", "4")
        If String.IsNullOrWhiteSpace(value) Then
            Return
        End If

        Dim count As Int32 = CInt(value)


        '设置最大列数
        Dim maxColumnt As Int32 = 4

        If count > maxColumnt * 2 Then
            MessageBox.Show("不能超过" & maxColumnt * 2 & "个。")
            Return
        End If



        '判断是否需要重起一行
        If count > maxColumnt Then
            '重新起一行
            Me.TableLayoutPanel1.RowCount = 2
            Me.TableLayoutPanel1.ColumnCount = maxColumnt
        Else
            Me.TableLayoutPanel1.ColumnCount = count
        End If

        For c As Int32 = 0 To Me.TableLayoutPanel1.ColumnCount - 1
            Me.TableLayoutPanel1.ColumnStyles.Add(New ColumnStyle())
        Next

        '添加控件
        For r As Int32 = 0 To Me.TableLayoutPanel1.RowCount - 1

            Me.TableLayoutPanel1.RowStyles.Add(New RowStyle())


            For c As Int32 = 0 To Me.TableLayoutPanel1.ColumnCount - 1
                Dim g As New GroupBox
                g.Text = r.ToString & " " & c.ToString
                g.Dock = DockStyle.Fill
                g.Width = 10
                Me.TableLayoutPanel1.Controls.Add(g, c, r)
            Next

        Next

        TableLayouResize()

    End Sub

    '自动大小
    Private Sub TableLayouResize()


        '反射解决,闪烁问题。
        TableLayoutPanel1.GetType().GetProperty("DoubleBuffered", System.Reflection.BindingFlags.Instance Or System.Reflection.BindingFlags.NonPublic).SetValue(TableLayoutPanel1, True, Nothing)
        For r As Int32 = 0 To Me.TableLayoutPanel1.ColumnCount - 1
            Me.TableLayoutPanel1.ColumnStyles(r).SizeType = SizeType.Absolute
            Me.TableLayoutPanel1.ColumnStyles(r).Width = CInt(Me.TableLayoutPanel1.Width / Me.TableLayoutPanel1.ColumnCount)
        Next

        For r As Int32 = 0 To Me.TableLayoutPanel1.RowCount - 1
            Me.TableLayoutPanel1.ColumnStyles(r).SizeType = SizeType.Absolute
            Me.TableLayoutPanel1.RowStyles(r).Height = CInt(Me.TableLayoutPanel1.Height / Me.TableLayoutPanel1.RowCount)
        Next

    End Sub

    Private Sub Form1_Resize(sender As Object, e As System.EventArgs) Handles Me.Resize
        TableLayouResize()
    End Sub

  使用了一下效果,还行,当然,还有TableLayoutPanel合并之类的,还没有使用。