2011-01-28 62 views
1

我创建了一个未绑定的DatagridView,这些行在运行期间手动输入,并且应该是可编辑的。.net无法在运行时编辑Datagridview中的值

使用命令DataGridView-> Rows-> Add(string,..)它会正确创建行,但它不允许我手动编辑值,即使它不在“只读”上。

The code used for input: 


    private: System::Void ButtomSave_Click(System::Object^ sender, System::EventArgs^ e) {  

    String^ folderName; 
/*DataGridViewComboBoxColumn^ cmbCol = gcnew DataGridViewComboBoxColumn; 
cmbCol->HeaderText = "Sagital/Coronal"; 
cmbCol->Items->Add("-"); 
cmbCol->Items->Add("Sagital"); 
cmbCol->Items->Add("Coronal"); 
dataGridView1->Columns->Add(cmbCol);*/ 
    FolderBrowserDialog^ folderBrowserDialog1 = gcnew FolderBrowserDialog; 
    folderBrowserDialog1->Description="Select the folder containing the image sequences folder"; 
    // Do not allow the user to create new files via the FolderBrowserDialog. 
    folderBrowserDialog1->ShowNewFolderButton = false; 
    // Default to the My Documents folder. 
    folderBrowserDialog1->RootFolder = Environment::SpecialFolder::Personal; 
    if (folderBrowserDialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK) 
    { 
     folderName = folderBrowserDialog1->SelectedPath; 
     array<String^>^subdirectoryEntries = Directory::GetDirectories(folderName); 
    DataGridViewRow row; 
     System::Collections::IEnumerator^ myEnum = subdirectoryEntries->GetEnumerator(); 
     while (myEnum->MoveNext()){ 

     dataGridView1->Rows->Add(myEnum->Current,"Sagital"); 

     } 
    } 
} 

我的应用程序是用C++语言编写的Windows窗体。

在此先感谢

回答

1

问题已解决。我不得不将整个datagridview设置为“只读”(我熟悉Qt)。

为了说明我自己的问题,为了让datagridview单元可以右键单击它,然后properties-> behavior section-> ReadOnly-> False(默认情况下为True)。

感谢您的答复

0

你真的可以添加一个字符串的行吗?你不需要创建一个Row对象来添加到集合中吗?

+0

我敢肯定,Rows-> Add()方法将创建一个新的行与所提供的列数据。 http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.rows.aspx – 2011-01-28 19:43:04