Отключение текстовых полей и DataGridView

#c# #winforms #datagridview #textbox

#c# #winforms #datagridview #текстовое поле

Вопрос:

Я работаю над Windows WinForm. Мне нужно предотвратить дальнейшее редактирование текстового поля, а также столбцов внутри DataGridView.

Я хочу, чтобы все это происходило только в том случае, если функция возвращает значение true.

Это то, что у меня есть до сих пор:

 public static bool isAuthSuccess = false; 
 

Комментарии:

1. Я только что удалил слово webform из текста вопроса, поскольку все остальное указывает на то, что это winforms.

2. Итак, вы хотите установить для текстового поля и некоторых столбцов DataGridView значение только для чтения на основе возвращаемого значения функции? Что вызывает запуск этой функции? Предоставьте некоторый код, чтобы показать, что у вас есть на данный момент.

3. общедоступный статический bool isAuthSuccess = false; Это то, что я объявил в переменной части

4. Если (isAuthSuccess) …. Я хочу предотвратить дальнейшее редактирование текстового поля и сетки

5. Где вы устанавливаете isAuthSuccess — почему вы не можете просто установить текстовое поле и столбцы только для чтения там?

Ответ №1:

 //if function() returns true
if(function())
{
    textbox1.ReadOnly = true;
    datagridview1.ReadOnly = true;
}
 

или с вашей переменной:

 if(isAuthSuccess)
{
    textbox1.ReadOnly = true;
    datagridview1.ReadOnly = true;
}
 

Это все, о чем вы просите? Это позволит вам просматривать, но ничего не менять. Просто верните им значение false, когда захотите отредактировать снова.

Комментарии:

1. Я попробовал этот ответ… Но дело в том, что в моем datagridview есть полосы прокрутки для it..so когда я сделаю его доступным только для чтения.. что на самом деле происходит, так это то, что полосы прокрутки не служат своей цели … я хочу, чтобы полосы прокрутки datagridview функционировали должным образом .. даже если это сделано только для чтения —— @Yatrix

2. Действительно? Вы уверены, что не отключили его? Я только что протестировал это, и он прокручивался нормально.

Ответ №2:

Если вы хотите предотвратить дальнейшее редактирование, я предполагаю, что пользователь будет редактировать его, и когда они закончат, вы хотите проверить состояние на соответствие этой функции.

Если это так, то вы можете вызвать эту функцию при проверке, проверив текстовое поле и datagridview.

Эта ссылка может помочь вам в случае с winforms.

Комментарии:

1. Вопрос касается winforms, а не webforms

2. Или, по крайней мере, в тегах указано winforms, и в нем упоминается datagridview — просто редактировал вопрос и заметил «веб-формы»

3. В нем говорится, что веб-форма Windows … которая, как я предполагаю, не является winforms.

4. Да, трудно быть уверенным — однако теги и элемент управления datagridview указывают на winforms. Я предполагаю, что веб-форма в тексте вопроса неверна.