【问题标题】:Get changed columns width in c# to save values and restore them在 c# 中获取更改的列宽以保存值并恢复它们
【发布时间】:2019-06-21 05:30:05
【问题描述】:

我有一个包含多列的 listView。我想在每次用户更改列宽时保存它们,以便能够在应用程序的下一次启动时恢复值,以使列宽与用户之前调整的一样。与下载管理器等应用程序中发生的情况相同。如何编码?

我的另一个问题是关于如何在特定索引处获取列名。

【问题讨论】:

    标签: c# winforms listview width multiple-columns


    【解决方案1】:

    好的,我找到了解决方案,但由于没有人回答我的问题,我想分享一下我是如何做到的。

    添加“ColumnWidthChanged”事件处理程序:

    this.listView1.ColumnWidthChanged += new System.Windows.Forms.ColumnWidthChangedEventHandler(this.listView1_ColumnWidthChanged);
    

    添加“ColumnWidthChanged”事件以在更改任何列后检查列宽。然后创建一个字符串并在其中存储列宽及其名称。

    private void listView1_ColumnWidthChanged(object sender, ColumnWidthChangedEventArgs e)
                {      
                    StringBuilder widths = new StringBuilder();
                    widths.Clear();
    
                    for (int i = 0; i < listView1.Columns.Count; i++)
                    {
                        int columnWide = listView1.Columns[i].Width;
                        string columnName = listView1.Columns[i].Text;
                        widths.Append(columnName + ":" + columnWide.ToString() + "#");
                    }
                    string line= widths.ToString(); 
                }
    

    结果应该是这样的:column1:xx#column2:xx#column3:xx ...

    现在您可以将此字符串保存到文件中,以便能够在下次应用启动时检索和恢复大小。 您可以使用 line.Split('#') 轻松提取和使用这些值,以便在下次应用启动时设置列大小。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-06
      相关资源
      最近更新 更多