c# - 将对象传递给用户控件和 + 未将对象引用设置为对象的实例

标签 c# user-controls

我的问题是.. 我有一个 UserControl,我在上面放置了一个 DataGridView 和一个按钮。 在这个控件上我有这三个变量:

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));
            }
        }

现在进入正题:

  1. 在拥有此组件的表单中,我运行“Initialize”方法。

  2. 它显示我不想显示的数据。

  3. 然后我更改 datagridview 中单元格中的一些值。

  4. 但是当我点击这个控件的“接受”按钮时,它应该 接受更改并更新连接的数据表 到 datagridview - 有一个错误说“对象引用不 设置为一个对象的实例。”

请帮忙..

最佳答案

问题已解决。

此组件 - PanelWithDataGrid - 放置在名为 AdminPanel 的组件上。

AdminPanel 正在执行方法 Initialize,该方法将数据适配器和数据表传递给 PanelWithDataGrid 组件。这些变量是空的,因为它们是在 Initialize 方法之后创建的。

所以这个问题的解决方案是在运行 Initialize 方法之前创建一个 SqlCeDataAdapter 对象和另一个 Datatable 对象。

关于c# - 将对象传递给用户控件和 + 未将对象引用设置为对象的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14162673/

相关文章:

c# - WPF VS Collection编辑器教程?

wpf - 使用样式触发器增加用户控件的大小?

WPF:用户控件的命令和命令参数

c# - HttpClient 通过 PostAsync 上传文件的奇怪行为

c# - .Net - 如何创建实现接口(interface)的 UserControl?负载控制错误

c# - 使用带有固定位置文本的 ScrollableControl 的自定义控件

c# - 获得焦点时突出显示 WPF 控件

c# - 向后遍历字符串以查找字符或短语

c# - Unity XCode iOS 在启动时崩溃

c# - ASP.NET Core - 模型绑定(bind)测试