私は現在動作しているこのボタンクリックコードを持っています:
private void button6_Click(object sender, EventArgs e)
        {
            using (var w = new StreamWriter(keywords))
            {
                crawlLocaly1 = new CrawlLocaly();
                crawlLocaly1.StartPosition = FormStartPosition.CenterParent;
                DialogResult dr = crawlLocaly1.ShowDialog(this);
                if (dr == DialogResult.OK)
                {
                    if (LocalyKeyWords.ContainsKey(mainUrl))
                    {
                        LocalyKeyWords[mainUrl].Clear();
                        LocalyKeyWords[mainUrl].Add(crawlLocaly1.getText());
                    }
                    else
                    {
                        LocalyKeyWords[mainUrl] = new List<string>();
                        LocalyKeyWords[mainUrl].Add(crawlLocaly1.getText());
                    }
                    Write(w);
                    listBox1.Items.Add("Url: " + LocalyKeyWords[mainUrl] + " --- " + "Localy KeyWord: " + crawlLocaly1.getText());
                }
                if (dr == DialogResult.Cancel)
                {
                    Write(w);
                }
            } 
        }
mainUrl(キー)またはcrawLocaly1.getText()(キーの値)に変更を加えたときに必要なので、ListBoxでもリアルタイムで変更されます。私はこのようにそれをやろうとしました:
listBox1.Items.Add("Url: " + LocalyKeyWords[mainUrl] + " --- " + "Localy KeyWord: " + crawlLocaly1.getText());
ただし、キーが既に存在する場合、またはキーがリストに存在しない場合は、キーの値のみを更新する代わりに、キーとその値を表示せず、新しい行を追加して、新しいキーとその値を ListBox に追加します。 .
ListBox でリアルタイムに更新されるようにするにはどうすればよいですか?
OK ListBox 行を次のように変更しました。
listBox1.Items.Add("Url: " + mainUrl + " --- " + "Localy KeyWord: " + crawlLocaly1.getText());
今はそれを追加していますが、新しい行として追加しています。それを追加して、ListBoxにすでにmainUrlが存在する行を置き換えてほしい。
また、mainUrl が ListBox に存在しない場合は、その値を新しい行に追加します。ただし、 Key(mainUrl) が ListBox に存在する場合は常に、それを置き換えるか、 value(crawlLocaly1.getText() ) のみを変更します。