我开发了一个win窗体,在一个mdi子窗体中调用下面源码,第一次运行没有问题,运行第二次就提示“索引 -1 处没有值。”,救命啊,这是什么问题啊!
源码如下:
datumCon=new DatumConsult();   //窗体
datumCon.MdiParent=this.ViewForm.MdiParent;
datumCon.initView(new object[]{ds,cr});
try
{
datumCon.Show();  //就是这里出问题!
}
catch(Exception ex )
{
MessageBox.Show(ex.Message); }
datumCon.Hide();

解决方案 »

  1.   

    贴这些代码看不出问题所在!你应该贴出datumCon.initView方法
      

  2.   

    问题应该是在DatumConsult窗体里,你把代码贴出来看看
      

  3.   

    public interface IView
    {
            
    void initView(object[]  viewArgs);
    }
    public   class ViewForm : System.Windows.Forms.Form,IView
    {
    protected Controller _controller ;

    protected object[]  _viewArgs;
    //构造函数
    public void initView(object[]  viewArgs)
    {
    _viewArgs=viewArgs;
    if  (_controller == null) 
    {
    _controller = GetController( _viewArgs);
    }

    } protected virtual Controller  GetController(object[]  viewArgs ){
    //{创建符合要求的控制类}
    return null;

    }
    public class DatumConsult :  ViewForm
    {//设计自动生成的代码//
    //继承的代码
    protected override Controller  GetController(object[]  viewArgs )
    {
    return new DatumConsultCtl(this,viewArgs);
    }
    }
      

  4.   

    DatumConsultCtl
    为控制类,处理DatumConsult 的一切事件处理!
      

  5.   

    可能:
    1,在哪里把_viewArgs 置空了;
    2,注意{ds,cr}这两个对象是否被重置过。