MONO GTK #: Попытка удалить текст в ComboBox, а затем добавить новый текст в ComboBox, но часть старого текста остается - PullRequest
3 голосов
/ 21 октября 2011

Я пытаюсь сначала удалить все в ComboBox.И затем добавьте к нему текст, но часть старого текста останется.Есть ли способ сбросить или очистить ComboBox?Или как мне лучше всего этого добиться?

public void GetBadgeName ()  
{  
     try  
    {  

    int i = 0;
    while (i < 200)
        {
            cmb_SelectBadge.RemoveText(i);
            ++i;
        }

   string connectionString = "URI=file:SIGN.sqlite";
   IDbConnection dbcon;
   dbcon = (IDbConnection) new SqliteConnection(connectionString);
   dbcon.Open();
   IDbCommand dbcmd = dbcon.CreateCommand();

   string sql =
      "SELECT BadgeName " +
      "FROM Badge";
   dbcmd.CommandText = sql;
   IDataReader reader = dbcmd.ExecuteReader();

   while(reader.Read()) {
    string BadgeName = reader.GetString (0);

    cmb_SelectBadge.PrependText(BadgeName);

            }

   reader.Close();
   reader = null;
   dbcmd.Dispose();
   dbcmd = null;
   dbcon.Close();
   dbcon = null;
    }         
    catch (Exception ex)
        {
            MessageBox.Show(ex.Message);    

        }
    }

Ответы [ 2 ]

2 голосов
/ 04 ноября 2011

Я понял это. Просто создайте новый пустой ListStore (я называю это ClearList), а затем сделайте combobox.Model равным ClearList. Затем добавьте или добавьте текст как обычно в поле со списком.

 ListStore ClearList = new ListStore(typeof(string),typeof(string));
 cmb_SelectBadge.Model = ClearList;

 // This example retrieves each BadgeName from the Badge table (see question)
 while(reader.Read()) {
     string BadgeName = reader.GetString (0);
     cmb_SelectBadge.PrependText(BadgeName);
        }
0 голосов
/ 22 октября 2011

Да, попробуйте combobox.Clear ().Вы можете найти документы для Gtk # на http://docs.go -mono.com /

...