Jeśli określisz AllowUserToAddRows
w winformach DataGridView
użytkownik może ręcznie dodać nowe wiersze w siatce. Teraz chcę dodać przycisk obrazu w jednej kolumnie, który powinien zostać wyświetlony również w nowym wierszu. Ale nie mogę zrobić tego, aby pokazać obraz, tylko obraz czerwono-krzyżowy jest pokazany tak, jakby nie został znaleziony.Zamień "czerwony krzyż" w DataGridViewImageColumn na "nowy wiersz" z niestandardowym obrazem
Oto zrzut ekranu z siatki z irytującego obrazu:
Obraz chcę pokazać to w Properties.Resources.Assign_OneToMany
.
Szukałem wszędzie i próbowałem kilka sposobów, takich jak (w konstruktorze)
var assignChargeColumn = (DataGridViewImageColumn)this.GrdChargeArrivalPart.Columns["AssignCharge"];
assignChargeColumn.DefaultCellStyle.NullValue = null;
assignChargeColumn.DefaultCellStyle.NullValue = Properties.Resources.Assign_OneToMany;
lub
private void GrdChargeArrivalPart_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e)
{
var grid = (DataGridView)sender;
DataGridViewRow row = grid.Rows[e.RowIndex];
if (row.IsNewRow)
{
var imageCell = (DataGridViewImageCell) row.Cells["AssignCharge"];
imageCell.Value = new Bitmap(1, 1); // or ...:
imageCell.Value = Properties.Resources.Assign_OneToMany; // or ...:
imageCell.Value = null;
}
}
oczywiście również przypisany ten obraz w kolumnie kolekcji DataGridView
na projektant:
Jaki jest więc właściwy sposób określenia domyślnego obrazu dla DataGridViewImageColumn
, który jest wyświetlany, nawet jeśli nie ma danych, ale tylko nowy wiersz? Jeśli to się liczy, jest to jpg-image:
Co masz na myśli * nowy wiersz *? Ktoś dodaje nowy wiersz. Następnie dodaje kolejną. Który jest nowym rzędem. Obecny lub oba (bieżący i poprzedni)? –
@ γηράσκωδ'αείπολλάδιδασκόμε: 'DataGridViewRow', który jest dodawany automatycznie, jeśli' AllowUserToAddRows' ustawiono na 'true'. Jest to jedyny wiersz, który zwraca 'true' dla [' IsNewRow'] (http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridviewrow.isnewrow (v = vs.110) .aspx) (link inside, from MSDN: _ "wiersz przestaje być nowym wierszem, gdy rozpoczyna się wprowadzanie danych do wiersza." _). Użytkownik powinien mieć możliwość wstawiania rekordów, podając wszystkie wartości bezpośrednio w 'DataGridView'. Więc w zasadzie ten wiersz zastępuje formularz. –