如何在DataGridView中使用验证

3
在我的程序中,当我在DataGridView中点击特定的行时,如果该行包含“\”,它应该弹出一个错误消息,显示“\ 不允许在名称或路径中使用”。我不知道如何实现这个功能。
以下是代码:
namespace OVF_ImportExport
{
    public partial class Form1 : Form
    {

        string sName = "";
        string sPath = "";
                public Form1()
        {
            InitializeComponent();
        }

        private void dataGridView1_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
        {

            foreach (DataGridViewRow row in dataGridView1.SelectedRows)
            {
                 sName = row.Cells[0].Value.ToString();
                 sPath = row.Cells[1].Value.ToString();

            }
        }

        private void BtnCreate_Click(object sender, EventArgs e)
        {
            richTextBox1.Text = "";
            StreamWriter file = new StreamWriter("Export.bat");
            file.WriteLine("c: ");
            file.WriteLine("cd \\");
            file.WriteLine("cd Program Files ");
            file.WriteLine("cd VMware");
            file.WriteLine("cd VMware OVF Tool");

            foreach (DataGridViewRow row in dataGridView1.SelectedRows)
            {
                 sName = row.Cells[0].Value.ToString();
                 sName = sName.Trim();
                 sPath = row.Cells[1].Value.ToString();

              file.WriteLine("start ovftool.exe --powerOffSource vi://" + TxtUsername.Text + ":" + TxtPassword.Text + "@"
                   + TxtIP.Text + sPath + " " + "\"" + TxtBrowsepath.Text + "\\" +  sName + "\\" + sName + ".ovf" + "\"" + Environment.NewLine);



            }
            file.WriteLine("pause");
            MessageBox.Show("Batch File Created","Batch File");
            file.Close();
        }

为什么您只想在单击行时标记此错误?如果某些数据不允许出现在行中,为什么不在数据绑定之前清理掉这些数据呢? - sr28
1个回答

2

尝试使用以下内容:

// Attach DataGridView events to the corresponding event handlers.      
 this.dataGridView1.CellValidating += new DataGridViewCellValidatingEventHandler(dataGridView1_CellValidating);

以上事件处理程序的方法:

private void dataGridView1_CellValidating(object sender,
        DataGridViewCellValidatingEventArgs e)
    {
        // Validate the CompanyName entry by disallowing empty strings.
        if (dataGridView1.Columns[e.ColumnIndex].Name == "CompanyName")
        {
            if (String.IsNullOrEmpty(e.FormattedValue.ToString()))
            {
                dataGridView1.Rows[e.RowIndex].ErrorText =
                    "Company Name must not be empty";
                e.Cancel = true;
            }
        }
    }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接