フォーム用に継承したクラスがあります。このクラスには、とりわけButtonとカスタムDataGridViewが含まれます。C#CellValueNeeded blocksフォーム
DataGridViewは、データベースに応じてアイテムを表示し、読み込みに時間がかかることがあります。私が持っているactualy:
public partial class dlgDetailsObj : Form
{
List<object> listItem;
public dlgDetailsObj(List<object> obj)
{
listItem = obj;
customGridView.CellValueNeeded += onCellValueNeeded;
customGridView.VirtualMode = true;
}
protected override void OnShown(EventArgs e)
{
base.OnShown(e);
customGridView.RowCount = listItem.Count; // When RowCount changes, items are loaded
}
private void onCellValueNeeded(object sender, DataGridViewCellValueEventArgs e)
{
if (e.RowIndex >= listItem.Count)
return;
String value = "";
customItem item = listItem[e.RowIndex];
if (e.ColumnIndex == columnId.Index)
{
value = item.Name; // If Name is null, it is loaded from dataBase (can take time)
}
/* Some else if*/
e.Value = value;
}
私の問題はcustomGridViewをロードするために開始すると、閉じるボタンがロードされていないと、ユーザーがそれをクリックすることができないということです(ロードが長すぎる場合はキャンセルします)。
ユーザーがキャンセルできるようにコードを挿入するにはどうすればよいですか?
編集:私は仮想GridViewコントロールを使用してい が
https://msdn.microsoft.com/en-us/library/dd988458(v=vs.110).aspx –