Я создал DataGrid в C#. Он считывает и отображает данные. Но у меня проблема с двойным щелчком. Если я дважды щелкнуть по тексту, это будет работать и открывается, но если я дважды щелкнуть внутри той же строки, где нет текста, это не сработает. Может ли кто-нибудь помочь мне решить эту проблему. Вот код и скриншот из программы.Двойной щелчок внутри DataRow в C#
public void FillListBox(DataTable table)
{
CgmTable = new DataView(table, "", "Title ASC", DataViewRowState.CurrentRows).ToTable();
dgCgm.DataSource = CgmTable;
dgCgm.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
dgCgm.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;
}
private void txtFilter_TextChanged(object sender, EventArgs e)
{
TextBox tb = sender as TextBox;
if (txtFilter.Text.Length == 0 && txtTitle.Text.Length == 0)
dgCgm.DataSource = CgmTable;
else
{
String sql = tb.Name == "txtTitle" ? "Title LIKE '{0}*'" : "FileName LIKE '{0}*'";
DataTable table = new DataView(CgmTable, String.Format(sql, tb.Text), "Title asc", DataViewRowState.CurrentRows)
.ToTable();
dgCgm.DataSource = table;
}
}
private void dgCgm_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e)
{
int recNo = Convert.ToInt32(dgCgm.Rows[e.RowIndex].Cells["RecNo"].Value);
int fileRec = Convert.ToInt32(dgCgm.Rows[e.RowIndex].Cells["FileRec"].Value);
string fileName = dgCgm.Rows[e.RowIndex].Cells["FileName"].Value.ToString();
string projectName = dgCgm.Rows[e.RowIndex].Cells["Project"].Value.ToString();
EventHandler<JumpToEventArgs> handler = LaunchCgm;
if (handler != null)
{
JumpToEventArgs ev = new JumpToEventArgs(recNo, fileRec, fileName, projectName);
handler(this, ev);
}
this.Close();
}
}
public class JumpToEventArgs : EventArgs
{
private int recNo, fileRec;
private string fileName, projectName;
public JumpToEventArgs(int recNo, int fileRec,
string fileName, string projectName)
{
this.recNo = recNo;
this.fileRec = fileRec;
this.fileName = fileName;
this.projectName = projectName;
}
_DO Мне нужно только изменить cellContentDoubleClick к CellDoubleClick? или что-нибудь еще нужно изменить внутри метода? Причина, просто перейдя из ContentDoubleClick в DoubleClick, не решила проблему @kmatyaszek_ –
@ user603948 снова проверить мой ответ :) – kmatyaszek