[英]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.