【问题标题】:.NET TreeView won't show images.NET TreeView 不会显示图像
【发布时间】:2008-09-24 07:37:29
【问题描述】:

获取 TreeView 控件以显示节点图像时出现问题。下面的代码有时有效,但在其他时候无法显示任何图像。


private TreeNode AddNodeForCore(TreeNode root, Core c) {
    string key = GetImageKey(c);
    TreeNode t = root.Nodes.Add(c.Name, c.Name, key, key);
    t.Tag = c;
    return t;
}

请注意,当它失败时,TreeView 无法显示任何节点的任何图像。 TreeView 确实有一个 ImageList 分配给它,并且图像键肯定在图像集合中。

编辑:
我的 google-fu 很弱。不敢相信我自己没有找到答案。

【问题讨论】:

    标签: c# .net winforms


    【解决方案1】:

    上面的谷歌帖子的有用之处实际上是:

    “这是 Windows XP 视觉样式实现中的一个已知错误。某些控件(如 ImageList)在应用调用 Application.EnableVisualStyles() 之前创建时未正确初始化。正常的 Main() 实现在 C# 的 Program.cs 中避免了这种情况。感谢您回帖!"

    因此,基本上,请确保在初始化图像列表之前调用 Application.EnableVisualStyles()。

    【讨论】:

      【解决方案2】:

      快速谷歌搜索找到了这个答案:http://forums.microsoft.com/MSDN/ShowPost.aspx?siteid=1&PostID=965968

      引用来自该页面:

      如果包含TreeView的Form在如下加载项启动函数中被实例化,就会出现图标!

      public partial class ThisApplication
      {
          Form1 frm;
      
          private void ThisApplication_Startup(object sender, System.EventArgs e)
          {
              frm  = new Form1();
              frm.Show();
      
          }
      

      但是,如果用类实例化,如下:

      public partial class ThisApplication
      {
          Form1 frm = new Form1();
      
      
          private void ThisApplication_Startup(object sender, System.EventArgs e)
          {
                          frm.Show();
      
          }
      

      然后它们不会出现。此外,如果禁用“VisualStyles”(XP 中的新功能),则图标在两种情况下都有效。

      【讨论】:

        【解决方案3】:

        根据[添加方法部分](MSDN库中的http://msdn.microsoft.com/en-us/library/ydx6whxs(VS.80).aspx),您需要同时填写TreeView.ImageListTreeView.SelectedImageList,因为第四个参数指的是第二个列表。

        如果选择节点时出现此错误,请不要再寻找。

        【讨论】:

          【解决方案4】:

          Yossarian 发布的解决方案和流行的“在 Application.EnableVisualStyles() 和 Application.Run() 之间调用 Application.DoEvents()”对我有用。

          经过一番挣扎、咬牙切齿和谷歌搜索,Addy Santo 发布的解决方案成功了。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2018-03-12
            • 2014-08-06
            • 2018-04-17
            • 2016-01-12
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多