【问题标题】:ObjectListView permit vertical scrolling even when control is disabled?即使禁用控件,ObjectListView 也允许垂直滚动?
【发布时间】:2020-03-24 14:11:28
【问题描述】:

在 ObjectListView(或其变体之一,如 DataListView)中,是否有一种方法可以在禁用控件时允许垂直滚动?

目前,禁用控件会阻止垂直滚动条响应鼠标活动。

【问题讨论】:

    标签: c# winforms scrollbar objectlistview


    【解决方案1】:

    根据: https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.control.enabled?view=netframework-4.8

    Control.Enabled 属性

    获取或设置一个值,该值指示控件是否可以响应 用户交互。

    因此,通过禁用控件,您可以删除所有用户交互,包括滚动。由于这是由所有控件继承的,因此 ObjectListView 的工作方式相同。

    所以你不想禁用控件。

    目前尚不清楚您想要实现什么,但 ObjectListView 确实有办法禁用您设置的部分(或全部)对象。

    一个例子: 假设您有一个简单的电话号码类,其中还包括一个 IsValid 方法。

     public class TelephoneNumber
     {
          public string Number { get; set; }
          public string Owner { get; set; }
          public string City { get; set; }
    
          public bool IsValid()
          {
              //code to check if number is valid
              if (this.Number.Length > 5)
                  return true;
              else
                  return false;
          }
     }
    

    您填充列表并将您的 ObjectListView 对象列表设置为正常。

    List<TelephoneNumber> MyNumbers = new List<TelephoneNumber>();
    MyNumbers.Add(new TelephoneNumber() { Number = "9512636272", City = "London", Owner = "Bob's Grill" });
    MyNumbers.Add(new TelephoneNumber() { Number = "9518263729", City = "Frankfurt am Main", Owner = "Tagesschau" });
    MyNumbers.Add(new TelephoneNumber() { Number = "951", City = "Wiesbaden",  Owner = "John"});
    
    this.objectListView1.SetObjects(MyNumbers);
    

    然后要将其中一些对象设置为禁用,您会生成一个新的子列表并使用将这些对象设置为禁用。

    //Generate new list of Incorrect numbers
    List<TelephoneNumber> Incorrect = MyNumbers.FindAll(delegate (TelephoneNumber number) { return !number.IsValid(); });
    //Set these to be Disabled
    this.objectListView1.DisabledObjects = Incorrect;
    

    有一些方法可以禁用和启用单个或多个对象或整个对象列表。

    有关详细信息,请参阅文档。滚动到底部以了解如何执行此操作的更多详细信息。 http://objectlistview.sourceforge.net/cs/blog8.html

    【讨论】:

      猜你喜欢
      • 2014-05-05
      • 1970-01-01
      • 1970-01-01
      • 2019-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-07
      • 1970-01-01
      相关资源
      最近更新 更多