0

データベースに直接挿入、変更したGridControlが1つあります。

テーブルに直接接続されたいくつかのフィールドPatientがあり、グリッドコントロールフィールドの1つは、idスペシャリストespecielistas 1 TableEsp- which has a 1:1 Relationship> MuchosPacientes and this field shows you allIDスペシャリストでしand lets me do the main functions. But to eliminate me says no sender == nullたが、同じコードを1つのイベントに対して実装し、KeyDown完全に削除しましsender != nullた。

private void gridControl1_EmbeddedNavigator_ButtonClick(
        object sender,
         NavigatorButtonClickEventArgs e)
{           
    if (e.Button.ButtonType == NavigatorButtonType.Edit 
        || e.Button.ButtonType == NavigatorButtonType.EndEdit)
    {
        ColumnView view = gridControl1.FocusedView as ColumnView;
        view.CloseEditor();

        if (view.UpdateCurrentRow())
        {
            pacienteTableAdapter.Update(dBDataSet);
        }
    }
    else if (e.Button.ButtonType == NavigatorButtonType.Remove)
    {

        if (MessageBox.Show("Desea eliminar?", "Confirmación", MessageBoxButtons.YesNo) != DialogResult.Yes)
            return;

        GridView view = sender as GridView;   //AQUI ES EL ERROR
        view.DeleteRow(view.FocusedRowHandle);
        pacienteTableAdapter.Update(dBDataSet);

    }           
}

private void gridView1_KeyDown(object sender, KeyEventArgs e) 
{
    if (e.KeyCode == Keys.Delete)
    {
        if (MessageBox.Show("Desea eliminar?", "Confirmación", MessageBoxButtons.YesNo) != DialogResult.Yes)
            return;

        GridView view = sender as GridView;
        view.DeleteRow(view.FocusedRowHandle);
        pacienteTableAdapter.Update(dBDataSet);
    }
}
4

2 に答える 2

1

その理由は、GridViewにキャストしたときにgridView1_KeyDown送信者がそうなった場合、すべてがうまくいくからです。gridView1

gridControl1_EmbeddedNavigator_ButtonClickしたがって、送信者がの場合、送信者gridControl1からキャストすると、が取得されますnull

GridControlにキャストしてからビューを取得するかgridView1、よりわかりやすい名前に名前を変更して直接参照してみてください。

于 2013-01-20T10:05:48.250 に答える
1

Have you tried to use "gridView1" instead of "view" (cast from "sender")?

于 2013-01-19T16:39:42.437 に答える