簡體   English   中英

增量列 header 文本 Datagridview

[英]Increment column header text Datagridview

我在下面有這段代碼,應該在每次單擊按鈕時在 datagridview 上創建一個新列,現在當單擊一個按鈕時,將生成一個名為"New Column 1"的列,但事情是我期待"New Column 1"將增加到"New Column 1" "New Column 2" "New Column 3"...當一個按鈕被點擊超過一次但即使多次點擊仍然出現"New Column 1"時。

到目前為止我嘗試過的,

private void guna2Button4_Click_1(object sender, EventArgs e) {
        guna2DataGridView2.Columns.Clear();

        // Add new column
        string file_path = @"C:\MAIN_TEXT_LOCATION\" + label3.Text + "\\" + label4.Text;
        using (StreamWriter swq = File.AppendText(file_path)) {
            var curr = 0;
            curr++;
            swq.Write("[" + "New Column " + (curr) + "]");
        }
        // Redefine data source
        retrieve_data();
}

我相信我遺漏了一些必須添加的關鍵代碼才能使其正常工作,但由於我是新手,我無法進一步思考以使其正常工作。

嘗試這個

  int curr = 0; 
    private void guna2Button4_Click_1(object sender, EventArgs e) {
            guna2DataGridView2.Columns.Clear(); 
            // Add new column
            string file_path = @"C:\MAIN_TEXT_LOCATION\" + label3.Text + "\\" + label4.Text;
            using (StreamWriter swq = File.AppendText(file_path)) {
                
                curr++;
                swq.Write("[" + "New Column " + (curr) + "]");
            }
            // Redefine data source
            retrieve_data();
    }

這是一個解決方案,它獲取字符串中的最后一個數字(int)並將數字增加 1。

將以下 class 添加到您的項目中

public static class Helpers
{
    public static string NextValue(this string sender)
    {
        string value = Regex.Match(sender, "[0-9]+$").Value;
        return sender[..^value.Length] + (long.Parse(value) + 1)
            .ToString().PadLeft(value.Length, '0');
    }
}

private int _columnIndex = 0; 跟蹤創建新列的最后一個數字。

在表單using System.Text.RegularExpressions; 然后在按鈕單擊事件中添加一個新列

public partial class Form1 : Form
{
    private int _columnIndex = 0;
    public Form1()
    {
        InitializeComponent();
    }

    private void NewColumnButton_Click(object sender, EventArgs e)
    {
        dataGridView1.Columns.Add(
            $"newColumnName{_columnIndex +1}", 
            $"New Column {_columnIndex}".NextValue());
        _columnIndex++;
    }
}

手動創建列后,我擴展了屏幕截圖中的列。

在此處輸入圖像描述

暫無
暫無

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

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