http://bugzilla.novell.com/show_bug.cgi?id=600786

http://bugzilla.novell.com/show_bug.cgi?id=600786#c0


           Summary: DataGridView: NullReferenceException when trying to
                    set a Cell value after DataGridViewRow.CreateCells
    Classification: Mono
           Product: Mono: Runtime
           Version: 2.6.x
          Platform: x86-64
        OS/Version: Windows 7
            Status: NEW
          Severity: Normal
          Priority: P5 - None
         Component: JIT
        AssignedTo: [email protected]
        ReportedBy: [email protected]
         QAContact: [email protected]
          Found By: Development
           Blocker: No


Description of Problem:

After creating a new DataGridViewRow and calling DataGridViewRow.CreateCells(),
you should be able to set the row's cell values. Mono, however, throws a
NullReferenceException


Steps to reproduce the problem:

1. Create a Form ("Form1") with a DataGridView ("DataGridView1") and a Button
("Button1")

2. Add the following code to the Button1_Click sub:

    Dim TextBoxColumn1 As New DataGridViewTextBoxColumn
    TextBoxColumn1.Name = "Text"
    DataGridView1.Columns.Add(TextBoxColumn1)

    Dim Row1 As New DataGridViewRow()
    Row1.CreateCells(DataGridView1)
    Row1.Cells(0).Value = "Cell"
    DataGridView1.Rows.Add(Row1)


Actual Results:

If the application is run in Visual Studio 2008 without Mono, and Button1 is
clicked, a DataGridView with one column ("Text") and one Row ("Cell") is shown.
No exception is thrown. 

However, if it is run with Mono, the following exception occurs when the button
is clicked:


System.NullReferenceException: Object reference not set to an instance of an
object

  at System.Windows.Forms.DataGridViewCell.GetValue (Int32 rowIndex) [0x00042]
in
C:\cygwin\tmp\monobuild\build\BUILD\mono-2.6.3\mcs\class\Managed.Windows.Forms\System.Windows.Forms\DataGridViewCell.cs:930

  at System.Windows.Forms.DataGridViewCell.get_Value () [0x00000] in
C:\cygwin\tmp\monobuild\build\BUILD\mono-2.6.3\mcs\class\Managed.Windows.Forms\System.Windows.Forms\DataGridViewCell.cs:382

  at System.Windows.Forms.DataGridViewCell.SetValue (Int32 rowIndex, 
System.Object value) [0x00000] in
C:\cygwin\tmp\monobuild\build\BUILD\mono-2.6.3\mcs\class\Managed.Windows.Forms\System.Windows.Forms\DataGridViewCell.cs:1326

  at System.Windows.Forms.DataGridViewCell.set_Value (System.Object value)
[0x00000] in
C:\cygwin\tmp\monobuild\build\BUILD\mono-2.6.3\mcs\class\Managed.Windows.Forms\System.Windows.Forms\DataGridViewCell.cs:385

  at DgvMonoTest.Form1.Button1_Click (System.Object sender, System.EventArgs
e)[0x00000] in <filename unknown>:0


Apparently, when the code tries to set "Row1.Cells(0).Value", Mono's
"DataGridViewCell.SetValue" calls "DataGridViewCell.GetValue". The value,
however, is Nothing, so the exception is thrown (but why should .GetValue be
necessary to set the value? Maybe there's simply missing a "If value Is
Nothing" line in DataGridViewCell.SetValue).


Expected Results:

No exception should be thrown. Instead, the row should be added to the
DataGridView. 



How often does this happen? 

Always.


Additional Information:

As a workaround, instead of creating a DataGridViewRow, the following code
works:

    Dim obj(0) As Object
    obj(0) = "Cell"
    DataGridView1.Rows.Add(obj(0))

-- 
Configure bugmail: http://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
_______________________________________________
mono-bugs maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-bugs

Reply via email to