Porównaj ceny domen i usług IT, sprzedawców z całego świata

DataGridView.Clear()


Tu zaczynają się kłopoty.
Chcę usunąć wszystkie wiersze z datagridview.
Oto jak dodaję linie:
private void ReadCompleteCallback(object clientHandle, Opc.Da.ItemValueResult[] results)
{
foreach (Opc.Da.ItemValueResult readResult in results)
{
dataGridView1.Invoke(new MethodInvoker(() => dataGridView1.Rows.Add(readResult.ItemName, readResult.Quality, readResult.Timestamp,readResult.Value)));
}
}

I tak wyczyszczę widok siatki:
private void treeView1_SelectionsChanged(object sender, EventArgs e)
{
dataGridView1.Rows.Clear();
items = new Opc.Da.Item[treeView1.SelectedNodes.Count];
foreach (TreeNode x in treeView1.SelectedNodes) {
items[treeView1.SelectedNodes.IndexOf(x)] = new Opc.Da.Item();
items[treeView1.SelectedNodes.IndexOf(x)].ItemName = x.Text;
} group.AddItems(items);
group.Read(group.Items, 123, new Opc.Da.ReadCompleteEventHandler(ReadCompleteCallback), out req);
}

w debugowaniu widzę dataGridVIew1.Rows.Count = 0, ale na formularzu siatka nie jest wyraźna. jaki jest sens?
przy każdym zaznaczeniu w drzewie chcę zobaczyć nowe wiersze w tabeli.
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Założę się, że wystarczy zaktualizować datagrid. Spróbuj:
dataGridView1.Rows.Clear();
dataGridView1.Refresh();

Jeśli to zadziała ... możesz przemyśleć tę część swojej aplikacji.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Jeśli dobrze pamiętam, ustawiam właściwość DataSource na null, aby wyczyścić DataGridView:
datagridview.DataSource = null;
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Aby wyczyścić
datagridview
, napisz następujący kod:
dataGridView1.DataSource=null;
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Zasadniczo poniższa linia kodu jest przydatna tylko w skryptach wiążących dane
datagridview.DataSource = null;

w przeciwnym razie poniżej jest używany, gdy nie ma powiązania danych, a datagridview jest wypełniany ręcznie
dataGridView1.Rows.Clear();
dataGridView1.Refresh();

Więc najpierw sprawdź, co robisz.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Jeśli chcesz wyczyścić dataGridView, który nie jest powiązany z DataSource, ale załadowany ręcznie, możesz użyć tego prostego kodu:
datagridview.Rows.Clear();
datagridview.Columns.Clear();
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

wszystko, co musisz zrobić, to wyczyścić swój datatable przed jego wypełnieniem ... a następnie ustawić jako źródło danych dgv
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Mam ten fragment kodu i mam nadzieję, że może ci pomóc.
int numRows = dgbDatos.Rows.Count; 
for (int i = 0; i < numRows; i++)
{
try
{
int max = dgbDatos.Rows.Count - 1;
dgbDatos.Rows.Remove(dgbDatos.Rows[max]); }
catch (Exception exe)
{
MessageBox.Show("You can´t delete A row " + exe, "WTF",
MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

spróbuj ustawić RowCount na 0 (allowuserstorows powinno być false), a także wywołaj clear
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

próba:
datagrid.DataSource = null;
datagrid.DataBind();

Zasadniczo musisz wyczyścić źródło danych powiązania z siecią.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Jeśli próbujesz ponownie powiązać widok siatki danych, po prostu zakoduj to:
DataGridView1.DataSource = DataSet.Tables["TableName"];

OR
DataGridView.DataSource = DataTable;

w przeciwnym razie, jeśli próbujesz wyczyścić widok siatki danych, po prostu zakoduj to:
DataGridView.DataSource = null;
DataGridView.Rows.Clear();
DataGridView.Refresh();

i dodaj dowolną metodę lub zdarzenie, aby ponownie powiązać widok DataTable w tym wierszu kodu ....
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Ustaw właściwość źródła danych na pusty ciąg, a następnie wywołaj metodę Clear.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Oto jeden ze sposobów, aby to zrobić:
datagridview.DataSource = null;
datagridview.Refresh();

Mam nadzieję, że to działa dla Ciebie, ponieważ działa dla mnie.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Nie lubię osobiście bawić się DataSource, więc po omówieniu tego z przyjacielem IT udało mi się odkryć ten sposób, który jest prosty i nie wpływa na DataSource. Mam nadzieję że to pomoże!
foreach (DataGridViewRow row in dataGridView1.Rows) 
{
foreach (DataGridViewCell cell in row.Cells)
{
cell.Value = "";
}
}
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Wypróbuj tę metodę
dataGridView1.DataSource = dt;
dt.Rows.Clear();
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

dataGridView1.DataSource=null;
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Jeśli twój
DataGridView
nie ma żadnego
DataSource
, rozwiązanie nie polega na manipulowaniu nim.
Ciąg
pusty
będzie zawsze dostępny, jeśli właściwość
AllowUserToAddRows
ma wartość
true
.
Wpisz
AllowUserToAddRows = false
, jeśli nie musisz na to zezwalać.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Wypróbuj ten kod
private void button_Click(object sender, EventArgs e) {
if (this.dgInv.DataSource != null) {
this.dgInv.DataSource = null;
} else {
this.dgInv.Rows.Clear();
}
}
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Spróbuj
DataGridView1.DataSource=ds;
ds.Clear();

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się