C#应用中树视图图像列表的奇怪现象

时间:2017-10-24 03:34:36

标签: c# winforms treeview imagelist

我最近使用treeview组件来实现我的html编辑器。我使用的编译器是Visual Studio Community 2017。

我使用imagelist来设置树视图的treenodes图像。 选择treenode时,它会在treenode上显示带笔的纸张。 如果未选择treenode,它将在treenode显示没有笔的纸张。

我的代码中使用的代码:

enum ImageList : int { Blank, BlankWithPen, Document, DocumentWithPen, DocumentWithLock, Locked }

TreeView1.SelectedNode.ImageIndex = (int)ImageList.Blank;
TreeView1.SelectedNode.SelectedImageIndex = (int)ImageList.BlankWithPen;

图像列表中使用的图像1

在treenode 2

处没有额外行的图片

我遇到的现象是图像显示在treenode有一条额外的线条。

在treenode 3

处添加额外行的图片

这种现象在我编写并编写程序几次并运行后显得更加明显。

虽然我发现了这种现象,但我试图修复它。我检查了这些原始图像,这些图像周围没有边框。

所以,我删除了图像列表的所有图像,然后再次将图像重新加载到图像列表中,重新编译程序后没有改变任何东西并运行,这种现象消失了。

这种现象一次又一次地出现,当时我做了一些小修改。并可以通过再次将图像重新加载到Imagelist来修复。

显然,这个问题与编码无关。

我想知道为什么会出现这种现象,如何永久解决这个问题?

1 个答案:

答案 0 :(得分:0)

最后,我将图像放入Properties的Resources中,然后将图像重新加载到imageList。

public class HomeController : Controller
{
    private readonly UserManager<ApplicationUser> _userManager;
    private readonly SignInManager<ApplicationUser> _signInManager;
    private readonly ApplicationDbContext _context;

    public HomeController(
        UserManager<ApplicationUser> userManager,
        SignInManager<ApplicationUser> signInManager,
        ApplicationDbContext context)
    {
        _userManager = userManager;
        _signInManager = signInManager;
        _context = context;
    }

    public async Task<IActionResult> ProfileView()
    {
        var user = await _userManager.GetUserAsync(User);
        if (user == null)
        {
            return NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'.");
        }
        return View(user);
    }


    [HttpPost]
    public async Task<IActionResult> ProfileView(ApplicationUser users)
    {
        if (!ModelState.IsValid)
        {
            return View();
        }

        var user = await _userManager.GetUserAsync(User);
        if (user == null)
        {
            return NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'.");
        }

        user.FirstName = users.FirstName;
        user.LastName = users.LastName;

        _context.Users.Update(user);
        await _context.SaveChangesAsync();

        await _signInManager.RefreshSignInAsync(user);
        return RedirectToAction();
    }
}