C# 针对窗口窗体应用程序c中的行中的数据添加删除链接标签#
在我的windows应用程序中,我想针对datagridview中的每条记录添加linklabel,即C# 针对窗口窗体应用程序c中的行中的数据添加删除链接标签#,c#,winforms,datagridview,C#,Winforms,Datagridview,在我的windows应用程序中,我想针对datagridview中的每条记录添加linklabel,即Delete,并从数据库中填充datagridview,如下所示: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using Sys
Delete
,并从数据库中填充datagridview,如下所示:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace search
{
public partial class Form1 : Form
{
SqlConnection connection = new SqlConnection("Data Source=(LocalDB)\\v11.0;AttachDbFilename=C:\\Users\\Administrator\\Documents\\Contact.mdf;Integrated Security=True;");
SqlDataAdapter da = new SqlDataAdapter();
DataSet ds = new DataSet();
public Form1()
{
InitializeComponent();
}
public void bindDatagridview()
{
SqlDataAdapter da = new SqlDataAdapter();
DataSet ds = new DataSet();
da.SelectCommand = new SqlCommand("Select * from contactsinfo", connection);
da.Fill(ds);
dataGridView1.DataSource = ds.Tables[0];
ds.Tables[0].Columns.Add("Delete", typeof(String));
foreach (DataGridViewRow r in dataGridView1.Rows)
{
DataGridViewLinkCell lc = new DataGridViewLinkCell();
lc.Value = r.Cells[2].Value = "Delete";
dataGridView1[2, r.Index] = lc;
}
clear();
}
public void clear()
{
textBox1.Text = string.Empty;
textBox2.Text = string.Empty;
}
private void Form1_Load(object sender, EventArgs e)
{
bindDatagridview();
}
}
}
DataGridViewLinkColumn dgvLink = new DataGridViewLinkColumn();
dgvLink.UseColumnTextForLinkValue = true;
dgvLink.LinkBehavior = LinkBehavior.SystemDefault;
dgvLink.HeaderText = "";
dgvLink.Name = "lnk_delete";
dgvLink.LinkColor = Color.Blue;
dgvLink.TrackVisitedState = true;
dgvLink.Text = "Delete";
dgvLink.UseColumnTextForLinkValue = true;
dataGridView1.Columns.Add(dgvLink);
上面的代码针对行中的每个数据添加Delete
linkLabel,但是当我单击datagridview的headertext时,linkLabel
转换为简单文本,如何转换,以及是否有任何方法针对行中的每个数据添加Delete
linkLabel。
请建议我,等待你的答复。
谢谢。我想你的问题在于专栏的类型
var col = new DataGridViewLinkColumn();
col.DataPropertyName = "Delete";
col.Name = "Delete";
ds.Tables[0].Columns.Add(col);
DataGridViewLinkColumn dgvLink = new DataGridViewLinkColumn();
dgvLink.UseColumnTextForLinkValue = true;
dgvLink.LinkBehavior = LinkBehavior.SystemDefault;
dgvLink.HeaderText = "";
dgvLink.Name = "lnk_delete";
dgvLink.LinkColor = Color.Blue;
dgvLink.TrackVisitedState = true;
dgvLink.Text = "Delete";
dgvLink.UseColumnTextForLinkValue = true;
dataGridView1.Columns.Add(dgvLink);
应该这样做。我正在使用它,它工作正常
DataGridViewLinkColumn dgvLink = new DataGridViewLinkColumn();
dgvLink.UseColumnTextForLinkValue = true;
dgvLink.LinkBehavior = LinkBehavior.SystemDefault;
dgvLink.HeaderText = "";
dgvLink.Name = "lnk_delete";
dgvLink.LinkColor = Color.Blue;
dgvLink.TrackVisitedState = true;
dgvLink.Text = "Delete";
dgvLink.UseColumnTextForLinkValue = true;
dataGridView1.Columns.Add(dgvLink);
单击列标题对列进行排序,并查看下划线是否保留在列中(
dgvLink
)
DataGridViewLinkColumn dgvLink = new DataGridViewLinkColumn();
dgvLink.UseColumnTextForLinkValue = true;
dgvLink.LinkBehavior = LinkBehavior.SystemDefault;
dgvLink.HeaderText = "";
dgvLink.Name = "lnk_delete";
dgvLink.LinkColor = Color.Blue;
dgvLink.TrackVisitedState = true;
dgvLink.Text = "Delete";
dgvLink.UseColumnTextForLinkValue = true;
dataGridView1.Columns.Add(dgvLink);
尝试对列进行排序时,此下划线将消失
DataGridViewLinkColumn dgvLink = new DataGridViewLinkColumn();
dgvLink.UseColumnTextForLinkValue = true;
dgvLink.LinkBehavior = LinkBehavior.SystemDefault;
dgvLink.HeaderText = "";
dgvLink.Name = "lnk_delete";
dgvLink.LinkColor = Color.Blue;
dgvLink.TrackVisitedState = true;
dgvLink.Text = "Delete";
dgvLink.UseColumnTextForLinkValue = true;
dataGridView1.Columns.Add(dgvLink);