Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Базы данных под .NET > Запрет ячеек на редактирование


Автор: ksu04061992 25.9.2015, 11:45
Здравствуйте, очень нужна помощь!!!
Требуется что бы при загрузки формы все ячейки были заблокированы на редактирование. Далее в процессе работы когда мы выделяем какую нибудь ячейку и нажимаем на кнопку, то выбранная ячейка становится доступной для редактирования.
Для обычного datagridview реализация такая :

1. На загрузку формы пишем цикл, который ставит блокировку : 

Код

 private void Form1_Load(object sender, EventArgs e)
        {
            this.test_table12TableAdapter.Fill(this.bux_zatrDataSet.test_table12);
 
            for (int i = 0; i < dataGridView1.RowCount; i++)
            {
               
                dataGridView1.Rows[i].Cells[0].ReadOnly = true;
                dataGridView1.Rows[i].Cells[1].ReadOnly = true;
            }
 
        }


2 .На кнопку пишем :
Код

private void button1_Click(object sender, EventArgs e)
        {
           
           dataGridView1.CurrentCell.ReadOnly = false; // CurrentCell возвращает текущую ячейку
            
        }



И все работает, но проблема в том что для работы необходимо использовать DevExpress и gridControl.Очень прошу помогите как реализовать данный способ с помощью DevExpress!!! Там совсем все по другому. Заранее спасибо 

Автор: jsharp36 25.9.2015, 14:04
Бросаете GridControl на форму. На нем в режиме дизайна жмете кнопку "Run Designer". Откроется форма. В ней сразу выбран пункт дизайна View. Справа тяните ползунок вниз, найдете Options. В ней находите и разворачиваете OptionsBehavior. Там находите свойство Editable. Выставляете его в false.
Всё

Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Zapret-yacheyek-na-redaktirovaniye-id56050a43ae20154c318b4567#findElement_E7045_56052a20ae20155e51b9cb86_0

Автор: chupachups 28.9.2015, 14:09
У каждой колонки есть настройки - OptionsColumn
Код

using System;
using System.Data;
using System.Linq;
using System.Windows.Forms;
using DevExpress.XtraGrid.Columns;

namespace TestApplication1
{
    public partial class Form1 : Form
    {
        GridColumn m_CurrentColumn;

        public Form1()
        {
            InitializeComponent();

            var data = from day in Enum.GetValues(typeof(DayOfWeek)).Cast<DayOfWeek>()
                        select new { id = day.ToString(), Name = System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.GetDayName(day) };
            gridControl1.DataSource = data;
            gridView1.Columns.ToList().ForEach(column => column.OptionsColumn.AllowEdit = false);
        }

        private void button1_Click(object sender, EventArgs e)
        {
            gridControl1.Focus();
            m_CurrentColumn = gridView1.FocusedColumn;
            m_CurrentColumn.OptionsColumn.AllowEdit = true;
            gridView1.ShowEditor();
        }

        private void gridView1_HiddenEditor(object sender, EventArgs e)
        {
            m_CurrentColumn.OptionsColumn.AllowEdit = false;
        }
    }
}


Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Zapret-yacheyek-na-redaktirovaniye-id56050a43ae20154c318b4567#findElement_E7045_56091ff6ae2015a92f1f57ca_0

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)