【问题标题】:How to change exact text value become consist or contains?如何将确切的文本值更改为包含或包含?
【发布时间】:2016-07-25 06:59:53
【问题描述】:

有没有办法转换它,从精确值文本变成由?所以我不需要输入 Ballet 而不是 Bal。 代码如下:

private void button6_Click_1(object sender, EventArgs e)
    {           
        ColumnView View = gridControl1.MainView as ColumnView;
            View.BeginUpdate();   
            try
            {
                int rowHandle = 0;
                DevExpress.XtraGrid.Columns.GridColumn col = View.Columns["genre"];                    
                while (true)
                {
                   // // Locate the next row 
                    rowHandle = View.LocateByValue(rowHandle, col, textBox6.Text);
                   // // Exit the loop if no row is found 
                    if (rowHandle == DevExpress.XtraGrid.GridControl.InvalidRowHandle)
                        break;
                    //// Perform specific operations on the found row 
                    gridView1.FocusedRowHandle = rowHandle;

                rowHandle++;
                }                
        }                
        finally { View.EndUpdate(); }       
    }

【问题讨论】:

  • 完全不清楚您的问题是什么。转换什么以及用于什么目的?什么文字?考虑扩展您对问题的解释。
  • 用于搜索。生病放图像.. 以及你可以 isee iam 使用 locateby 值这意味着我需要输入精确的文本 Ballet,因为区分大小写。问题是,我不输入芭蕾来搜索,而只是输入 Bal。和gridview选择芭蕾舞记录
  • 尝试迭代 datagridview 中的所有记录并选择仅记录 whitch 列流派从您的文本输入开始。例如在 foreach 循环中放置 if(yourDataGridViewRow.Cell["genre"].Value.ToString().StartsWith(textInput))
  • @JiříVrbas 感谢您的回复,我正在使用 devexpress,无法使用 datagridview.. 只有 gridview1 和 gridcontrol1。你能输入完整的代码吗? :p

标签: c# string gridview devexpress devexpress-windows-ui


【解决方案1】:
for (int i = 0; i < gridView1.VisibleRowCount; i++)
{
    var row = gridView1.GetDataRow(i);
    var genre = row["ColumnName"].ToString(); //ColumnName is your genre Column name

    if(genre.StartsWith(textBox6.text)){
       //here you can set row sellected
    }
}

我没有使用 devexpress 的经验,但你可以这样尝试。

【讨论】:

  • 它会不停地读取所有循环。所以它从头到尾循环无法读取文本框中的字符串
  • 你的意思是 textBox6.text 像“”一样是空的?所以如果陈述永远不会是真的?
  • 我尝试像这样修改它for (int i = 0; i &lt; gridView1.RowCount; i++) { var rosw = gridView1.GetDataRow(i); var genre = rosw["genre"].ToString(); if (genre.Contains(textBox8.Text)) { MessageBox.Show(genre); gridView1.FocusedRowHandle = i; } } 但我仍然需要输入确切的字符串;(
  • 你的确切字符串是什么意思?您必须像在示例中那样编写 Ballet 才能进入 if 语句,而当您只写 Ball 时,它不会进入 if 语句?
  • 使用调试器查看流派和 textBox6.Text 中的值
【解决方案2】:

如果这不是你想要的,但它解决了我自己的问题

 for (int i = 0; i < gridView1.RowCount; i++)
        {
            var rosw = gridView1.GetDataRow(i);
            var genre = rosw["genre"].ToString();
            int tmpg = 0;
           // //tmpg = genre.IndexOf(textBox8.Text, StringComparison.OrdinalIgnoreCase);

            if (genre.IndexOf(textBox8.Text, StringComparison.OrdinalIgnoreCase) >= 0)
            {


                //if (tmpg >= 1)
               // MessageBox.Show(genre);

                gridView1.FocusedRowHandle = i;
                break;
            }
        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多