私の問題は..私はUserControlを持っていて、その上にDataGridViewとボタンを配置しました。このコントロールには、次の3つの変数があります。
namespace MySpace
{
public partial class PanelWithDataGrid : UserControl
{
public DatabaseMenager FDatabaseManager { get; set; }
public SqlCeDataAdapter FDataAdapter { get; set; }
private DataTable FDataTable { get; set; }
[...]
コンストラクターは次のようになります。
public PanelWithDataGrid()
{
InitializeComponent();
}
そして..私はこのように見える方法を持っています:
public void Initialize(DatabaseMenager pDatabaseManager, DataTable pDataTable, SqlCeDataAdapter pDataAdapter)
{
FDataAdapter = pDataAdapter;
FDatabaseManager = pDatabaseManager;
FDataTable = pDataTable;
}
そして..私はまたこのように見えるクリックイベントを持っているボタンを持っています:
private void btnAccept_Click(object sender, EventArgs e)
{
try
{
if (MessageBox.Show("Accept changes?", "Accept?", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
FDataTable.AcceptChanges();
FDataAdapter.Update(FDataTable);
}
}
catch (Exception ex)
{
System.Windows.Forms.MessageBox.Show(String.Format("Error:\n\n{0}", ex.StackTrace));
}
}
そして今、要点:
このコンポーネントを所有するフォームで、「Initialize」メソッドを実行します。
表示したくないデータが表示されます。
次に、datagridviewのセルのいくつかの値を変更します。
しかし、変更を受け入れ、datagridviewに接続されているデータテーブルを更新する必要があるこのコントロールの[同意する]ボタンをクリックすると、「オブジェクト参照がオブジェクトのインスタンスに設定されていません」というエラーが表示されます。
助けてください..