この場合、40のリンクがあります。プログラムを実行しているときは、最後の行を1行追加するだけです。なぜdatagridviewへのリンクを追加すると1行だけ追加されますか?
public Form1()
{
InitializeComponent();
label2.Visible = false;
label3.Visible = false;
label4.Visible = false;
label7.Visible = false;
tbxMainDownloadPath.Text = Properties.Settings.Default.LastSelectedFolder;
if (tbxMainDownloadPath.Text != "")
downloadDirectory = tbxMainDownloadPath.Text;
tracker = new DownloadProgressTracker.DownloadProgress(50, TimeSpan.FromMilliseconds(500));
string[] countries = File.ReadAllLines(@"CountriesNames.txt");
string[] countriesCodes = File.ReadAllLines(@"CountriesCodes.txt");
foreach (string country in countries)
{
countryList.Add(country);
string countryPath = Path.Combine(downloadDirectory, country);
if (!Directory.Exists(countryPath))
Directory.CreateDirectory(countryPath);
}
foreach (string code in countriesCodes)
{
codesList.Add(code);
}
codeToFullNameMap = codesList
.Select((code, index) => index)
.ToDictionary(
keySelector: index => codesList[index],
elementSelector: index => countryList[index]);
lines = File.ReadAllLines(@"links.txt");
for (int i = 0; i < lines.Length; i++)
{
RichTextBoxExtensions.AppendText(true, richTextBox1, "Ready: ", Color.Red, 8.25f);
richTextBox1.AppendText(lines[i] + (i < lines.Length - 1 ? Environment.NewLine : String.Empty));
}
for (int i = 0; i < countriesCodes.Length; i++)
{
dataGridView1.Columns.Clear();
dataGridView1.ColumnCount = 2;
dataGridView1.Columns[0].Name = "Country";
dataGridView1.Columns[1].Name = "Code";
var countryName = codeToFullNameMap[countriesCodes[i]];
string[] row = new string[] { countryName, countriesCodes[i] };
dataGridView1.Rows.Add(row);
DataGridViewLinkColumn dgvLink = new DataGridViewLinkColumn();
dgvLink.UseColumnTextForLinkValue = true;
dgvLink.LinkBehavior = LinkBehavior.SystemDefault;
dgvLink.HeaderText = "Link Data";
dgvLink.Name = "SiteName";
dgvLink.LinkColor = Color.Blue;
dgvLink.TrackVisitedState = true;
dgvLink.Text = lines[i];
dgvLink.UseColumnTextForLinkValue = true;
dataGridView1.Columns.Add(dgvLink);
}
}
国コードには40の項目があります。
それが残りの部分を追加していない、最初の問題はそれだけで一つの国を追加することだということです、それがリンクだとそれが最後の一つです。
第2の問題は、どのように私はそれを右に移動させることができますか?私は右のデータグリッドビューの端の側にリンク列を右にドラッグするためにマウスを使用しているときに実行することを意味します。私はすでに右端側にすることができますか?私は右にドラッグした後、スクリーンショットが追加さ:
第三国からハイライトを削除する方法を最後の問題は?私はそれが何かを強調したくない。現在、プログラムを実行しているとき、ハイライトは国で自動です。 Upodate
は私が持っていたすべての問題解決
:
for (int i = 0; i < countriesCodes.Length; i++)
{
dataGridView1.ColumnCount = 2;
dataGridView1.Columns[0].Name = "Country";
dataGridView1.Columns[1].Name = "Code";
var countryName = codeToFullNameMap[countriesCodes[i]];
string[] row = new string[] { countryName, countriesCodes[i] };
dataGridView1.Rows.Add(row);
DataGridViewLinkColumn dgvLink = new DataGridViewLinkColumn();
dgvLink.UseColumnTextForLinkValue = true;
dgvLink.LinkBehavior = LinkBehavior.SystemDefault;
dgvLink.HeaderText = "Link Data";
dgvLink.Name = "SiteName";
dgvLink.LinkColor = Color.Blue;
dgvLink.TrackVisitedState = true;
dgvLink.Text = lines[i];
dgvLink.UseColumnTextForLinkValue = true;
dataGridView1.Columns.Add(dgvLink);
}
this.dataGridView1.Columns[2].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
dataGridView1.EnableHeadersVisualStyles = false;
dataGridView1.DefaultCellStyle.SelectionBackColor = dataGridView1.DefaultCellStyle.BackColor;
dataGridView1.DefaultCellStyle.SelectionForeColor = dataGridView1.DefaultCellStyle.ForeColor;
dataGridView1.AllowUserToAddRows = false;
dataGridView1.BackgroundColor = System.Drawing.SystemColors.Control;
すべての問題を解決しました。私の質問をすべてのサブ質問解決法で編集しました。 –