WinForm .NET 3.5 (C#)Wyświetlacz kontroli użytkownika w DataGridViewCell
Mam DataGridView (DGView) i stworzyłem CustomColumn i CustomCell być wyświetlane w DGView. Stworzyłem CustomUserControl, który chcę wyświetlić w CustomCell.
Problem: Nie widzę kontroli użytkownika w kolumnie. Myślę, że muszę przesłonić metodę Paint() w CustomCell - Jakieś punkty, jak mogę to zrobić?
Uwaga - Przykładem hostingu MSDN dla hostingu jest edycja wartości komórki - dzięki czemu kontrola użytkownika jest widoczna w miejscu, w którym edytujesz komórkę. Chcę, aby moja kontrola użytkownika była renderowana jako normalna kontrola WinForm. Ta kontrolka użytkownika pokazuje powiadomienia dla wiersza .. i każdy wiersz może mieć różne powiadomienia. Chcę, aby użytkownicy mogli kliknąć powiadomienie i uzyskać więcej informacji na jego temat. ... ale na razie utknąłem w "jak wyświetlić tę kontrolę użytkownika". Wszystkie wskaźniki będą wysoko cenione.
public class CustomColumn : DataGridViewColumn {
public CustomColumn() : base(new CustomeCell()) { }
public override DataGridViewCell CellTemplate
{
get
{
return base.CellTemplate;
}
set
{
// Ensure that the cell used for the template is a CalendarCell.
if (value != null &&
!value.GetType().IsAssignableFrom(typeof(CustomeCell)))
{
throw new InvalidCastException("It should be a custom Cell");
}
base.CellTemplate = value;
}
}
}
public class CustomeCell : DataGridViewTextBoxCell
{
public CustomeCell() : base() { }
public override Type ValueType
{
get
{
return typeof(CustomUserControl);
}
}
public override Type FormattedValueType
{
get
{
return typeof(CustomUserControl);
}
}
}
Należy również zdefiniować klasę, która pochodzi od sterowania i implementuje interfejs IDataGridViewEditingControl. –
@AngshumanAgarwal Jak wspomniałem w moim pytaniu - nie chcę edytować, chcę tylko wyświetlić moją kontrolę użytkownika dla wszystkich wierszy w jednej kolumnie. – karephul
Nie rozumiem dokładnie .. ale chcesz pokazać wartości komórek nie pokazane datagridview do użytkownika? (jeśli użytkownik kliknął raz w komórkę), jeśli tak, to po prostu skorzystaj z ToolTip z SQLQuery lub LINQ – sihirbazzz