簡體   English   中英

Datagridview : DataGridViewImageColumn 顯示一個紅叉

[英]Datagridview : DataGridViewImageColumn displays a red cross

我有一個由數據表提供的數據網格視圖,我向其中添加了一個額外的 dataGridViewImageColumn。 但是,不是在添加的列中顯示正確的標志(圖片),而是出現一個紅色叉號。

我為這個問題搜索了整個下午,仍然想知道我在這里做錯了什么。 任何的想法?

在此先感謝您的幫助。

    private void displayMeteoCities()
    {
        DataTable l_Table = null;
        ClsCountriesFactory l_Countries = null;
        DataGridViewImageColumn l_ImageColumn = null;
        Bitmap l_Flag = null;
        string l_Country = string.Empty;

        try
        {
            this.m_Meteo_Cities = new ClsMeteoCitiesFactory();
            this.m_Meteo_Cities.getMeteoCities();
            l_Table = ClsDomoosManagerCore.CreateDataTable(this.m_Meteo_Cities.Meteo_Cities);
            this.dgr_Meteo_Cities.DataSource = l_Table;


            l_ImageColumn = new DataGridViewImageColumn();
            // l_ImageColumn.DisplayIndex = 0;
            l_ImageColumn.Width = 50;
            l_ImageColumn.Name = "Country_flag";
            //l_ImageColumn.SortMode = DataGridViewColumnSortMode.NotSortable;
            this.dgr_Meteo_Cities.Columns.Add(l_ImageColumn);

            l_Countries = new ClsCountriesFactory();
            l_Countries.loadCountryFlags();

            this.dgr_Meteo_Cities.RowsDefaultCellStyle.BackColor = Color.Moccasin;
            this.dgr_Meteo_Cities.AlternatingRowsDefaultCellStyle.BackColor = Color.GreenYellow;

            for (int i = 0; i < this.dgr_Meteo_Cities.Rows.Count; i++)
            {
                l_Country = Convert.ToString(this.dgr_Meteo_Cities["iso_country", i].Value);
                l_Flag = l_Countries.Flags[l_Country];
                this.dgr_Meteo_Cities[7, i].Value = l_Flag;
            }

        }
        catch (Exception exc)
        {
            ClsErrorManager.manageException(exc);
        }
        finally
        {
            l_Table = null;
            l_Flag = null;
        }
}

我知道這是一個老問題,但希望在未來解決某人的挫折......

雖然我幾乎總是建議在使用 Designer 時不要擺弄控件構造函數,但在這種情況下,這是處理它的正確方法。 InitializeComponent例程中找到圖像列(不是DataGridView ),並添加以下行,用圖像列的名稱替換ImageColumn

VB.Net

Me.ImageColumn.DefaultCellStyle.NullValue = Nothing

C#

{
    this.ImageColumn.DefaultCellStyle.NullValue = null;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM