Модераторы: Partizan, gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ввод ограничений в TextBox 
:(
    Опции темы
Yagmort
Дата 2.12.2010, 17:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 339
Регистрация: 17.6.2009

Репутация: нет
Всего: -1



нашел такую ссылку, но беру код оттуда и ничего не получается :( Ввожу любые символы, фильтрации нет 

http://forum.vingrad.ru/forum/topic-169366...л-textbox.html 


PM MAIL   Вверх
Ky7m
Дата 2.12.2010, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 8.4.2008

Репутация: 1
Всего: 2



А куда этот код вставляешь?
PM MAIL ICQ   Вверх
Yagmort
Дата 2.12.2010, 23:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 339
Регистрация: 17.6.2009

Репутация: нет
Всего: -1



Тут еще такой ньюанc ограничение, то я на ввод это одно, а как запретить копировать в TextBox текст ? т.е. Ctrl+V или правой кнопкой мыши ? WebForm у меня.
Просто как событие вставляю. Или я не верно понял ? 
Код

private void TextBox1_Click(object sender, EventArgs e)
{

}

PM MAIL   Вверх
i2m
Дата 3.12.2010, 02:55 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 4.5.2010

Репутация: нет
Всего: 1



Код

private void textBox_KeyPress(object sender, KeyPressEventArgs e)
{
}


Код

private void TextBox1_Click(object sender, EventArgs e)
{
}


Замечаете разницу?
PM MAIL   Вверх
CYBERDREAM
Дата 3.12.2010, 08:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I think, there4 I am
***


Профиль
Группа: Завсегдатай
Сообщений: 1096
Регистрация: 31.10.2006
Где: CyberLand

Репутация: 11
Всего: 28



Код

using System;
using System.ComponentModel;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace J
{
    public class TextBoxCharacters : TextBox
    {
        public TextBoxCharacters()
        {
            AllowProperty = new AllowCharactersticGroup();
        }

        [DisplayName("Allowed Characters"), Description("шаблон с символами, разрешенными для ввода")]
        public AllowCharactersticGroup AllowProperty { get; set; }

        

        protected override void OnKeyPress(KeyPressEventArgs e)
        {
            if (e.KeyChar == (int)Keys.Back || e.KeyChar == (int)Keys.Enter)
                return;

            if ((ModifierKeys & Keys.CapsLock) == Keys.CapsLock)
                return;
            if ((ModifierKeys & Keys.Control) == Keys.Control)
                return;

            if (AllowProperty.All)
                return;

            if (AllowProperty.Custom)
            {
                if (String.IsNullOrEmpty(AllowProperty.AllowedCharacters))
                    return;

                if (!AllowProperty.AllowedCharacters.Contains(e.KeyChar))
                    e.Handled = true;
                return;
            }

            if (AllowProperty.Chars && Char.IsLetter(e.KeyChar))
                return;
            if (AllowProperty.Digits && Char.IsDigit(e.KeyChar))
                return;
            if(AllowProperty.Hyphen && e.KeyChar=='-')
                return;

            if(AllowProperty.Punctuation && (e.KeyChar=='.' || e.KeyChar==','))
                return;

            if (AllowProperty.WhiteSpace && Char.IsWhiteSpace(e.KeyChar))
                return;
            if (AllowProperty.Symbols && AllowCharactersticGroup.AllowedSymbols.Contains(e.KeyChar))
                return;

            e.Handled = true;
        }
    }

    [TypeConverter(typeof(ExpandableObjectConverter))]
    public class AllowCharactersticGroup
    {
        #region Fields

        private bool _chars;
        private bool _hyphen;
        private bool _digits;
        private bool _whiteSpace;
        private bool _symbols;
        private bool _punctuation;
        private string _allowedCharacters;

        #endregion

        #region Properties

        [DisplayName("Буквы")]
        [TypeConverter(typeof(BooleanTypeConverter))]
        public Boolean Chars
        {
            get
            {
                if (Custom)
                    return false;
                return _chars;
            }
            set { _chars = value; }
        }

        [DisplayName("Дефис")]
        [TypeConverter(typeof(BooleanTypeConverter))]
        public Boolean Hyphen
        {
            get
            {
                if (Custom)
                    return false;
                return _hyphen;
            }
            set { _hyphen = value; }
        }

        [DisplayName("Цифры")]
        [TypeConverter(typeof(BooleanTypeConverter))]
        public Boolean Digits
        {
            get
            {
                if (Custom)
                    return false;
                return _digits;
            }
            set { _digits = value; }
        }

        [DisplayName("Пробел")]
        [TypeConverter(typeof(BooleanTypeConverter))]
        public Boolean WhiteSpace
        {
            get
            {
                if (Custom)
                    return false;
                return _whiteSpace;
            }
            set { _whiteSpace = value; }
        }

        [DisplayName("Символы")]
        [TypeConverter(typeof(BooleanTypeConverter))]
        [Description("/\\*-+)([]{}'\":;|/~!@#$%^&№?<>=_`")]
        public Boolean Symbols
        {
            get
            {
                if (Custom)
                    return false;
                return _symbols;
            }
            set { _symbols = value; }
        }

        [DisplayName("Знаки препинания")]
        [TypeConverter(typeof(BooleanTypeConverter))]
        public Boolean Punctuation
        {
            get
            {
                if (Custom)
                    return false;
                return _punctuation;
            }
            set { _punctuation = value; }
        }

        [DisplayName("Пользовательский"), TypeConverter(typeof(BooleanTypeConverter))]
        [Description("Пользователь сам указывает разрешенный набор символов")]
        public bool Custom { get; set; }

        [DisplayName("Allowed characters")]
        [Description("символы разрешенные для ввода, если AllowePattern=All")]
        public String AllowedCharacters
        {
            get
            {
                if (!Custom)
                    return String.Empty;
                return _allowedCharacters;
            }
            set
            {
                _allowedCharacters = value;
            }
        }

        [Browsable(false)]
        public Boolean All
        {
            get { return Chars && Hyphen && Digits && Symbols && Punctuation; }
            private set
            {
                Chars = Hyphen = Digits = Symbols = Punctuation = WhiteSpace = value;
                Custom = !value;
            }
        }

        public const String AllowedSymbols = "/\\*-+)([]{}'\":;|/~!@#$%^&№?<>=_`";

        #endregion

        #region .ctor

        public AllowCharactersticGroup()
        {
            All = true;
        }

        #endregion

        #region Methods

        public override string ToString()
        {
            if (Custom)
                return "Пользовательский";
            if (Chars && Hyphen && WhiteSpace && Symbols && Punctuation)
                return "Все";

            StringBuilder sb = new StringBuilder();

            if (Chars)
                sb.Append("буквы,");
            if (Hyphen)
                sb.Append("дефис,");
            if (Digits)
                sb.Append("цифры,");
            if (WhiteSpace)
                sb.Append("пробел,");
            if (Symbols)
                sb.Append("символы,");
            if (Punctuation)
                sb.Append("знаки препинания,");
            if (sb.Length > 0 && sb[sb.Length - 1] == ',')
                sb.Remove(sb.Length - 1, 1);
            else if (sb.Length == 0)
                return "Только для чтения";
            return sb.ToString();
        }

        #endregion
    }

    public class BooleanTypeConverter : BooleanConverter
    {
        public override object ConvertTo(ITypeDescriptorContext context,
          CultureInfo culture,
          object value,
          Type destType)
        {
            return (bool)value ?
              "Да" : "Нет";
        }

        public override object ConvertFrom(ITypeDescriptorContext context,
          CultureInfo culture,
          object value)
        {
            return (string)value == "Есть";
        }
    }
}


Это сообщение отредактировал(а) CYBERDREAM - 3.12.2010, 08:29


--------------------
Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно)
Telegram, skype: kuchuk.artiom
PM MAIL WWW   Вверх
Yagmort
Дата 3.12.2010, 10:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 339
Регистрация: 17.6.2009

Репутация: нет
Всего: -1



и как пременить вышенаписанный код к данному текстбоксу ?
PM MAIL   Вверх
CYBERDREAM
Дата 3.12.2010, 11:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I think, there4 I am
***


Профиль
Группа: Завсегдатай
Сообщений: 1096
Регистрация: 31.10.2006
Где: CyberLand

Репутация: 11
Всего: 28



это кастомный текстбокс, заменить можешь существующий этим 


--------------------
Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно)
Telegram, skype: kuchuk.artiom
PM MAIL WWW   Вверх
Yagmort
Дата 3.12.2010, 11:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 339
Регистрация: 17.6.2009

Репутация: нет
Всего: -1



Цитата(CYBERDREAM @ 3.12.2010,  11:16)
это кастомный текстбокс, заменить можешь существующий этим

Я не особо хорошо знаю весь синтаксис, чтобы правильно заменить  C#(
PM MAIL   Вверх
CYBERDREAM
Дата 3.12.2010, 12:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I think, there4 I am
***


Профиль
Группа: Завсегдатай
Сообщений: 1096
Регистрация: 31.10.2006
Где: CyberLand

Репутация: 11
Всего: 28



зайди в класс дезайнера (знашь где и что это?) находишь объявление и инициализацию своего текстбокса, заменяешь TextBox на TextBoxCharacters  ну и все. (а ну добавь класс мой к себе в проект и подправь нэймспэйс лучше)


--------------------
Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно)
Telegram, skype: kuchuk.artiom
PM MAIL WWW   Вверх
Yagmort
Дата 3.12.2010, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 339
Регистрация: 17.6.2009

Репутация: нет
Всего: -1



Цитата(CYBERDREAM @ 3.12.2010,  12:03)
зайди в класс дезайнера (знашь где и что это?) находишь объявление и инициализацию своего текстбокса, заменяешь TextBox на TextBoxCharacters  ну и все. (а ну добавь класс мой к себе в проект и подправь нэймспэйс лучше)

Я создал отдельный элемент Класс, залил туда код, у меня TextBoxCharacters() поменял на свой странице дизайнера id своего TextBoxa на TextBoxCharacters, как сделать так, и ничего не происходит ( Наверное надо сослаться как нибудь на этот текст бокс ? 
Код

protected global::System.Web.UI.WebControls.TextBox TextBoxCharacters;

А если мне надо для 30 текстбоксов сделать, каждый раз копировать код ? или добавить 30 методов ?

Добавлено через 6 минут и 54 секунды
Запустил и он мне пишет теперь не задана ссылка на Объект (

Добавлено через 8 минут и 45 секунд
TextBoxCharacters.Height = 17; когда так поменял

Это сообщение отредактировал(а) Yagmort - 3.12.2010, 13:36
PM MAIL   Вверх
CYBERDREAM
Дата 3.12.2010, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I think, there4 I am
***


Профиль
Группа: Завсегдатай
Сообщений: 1096
Регистрация: 31.10.2006
Где: CyberLand

Репутация: 11
Всего: 28



глянь

Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  WFA.rar 8,49 Kb


--------------------
Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно)
Telegram, skype: kuchuk.artiom
PM MAIL WWW   Вверх
Yagmort
Дата 3.12.2010, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 339
Регистрация: 17.6.2009

Репутация: нет
Всего: -1



Цитата(CYBERDREAM @ 3.12.2010,  13:45)
глянь

Понятно, а если мне надо применить данный класс для нескольких прастранств имен, т.е. для нескольких страниц

Добавлено через 1 минуту и 57 секунд
Цитата(Yagmort @ 3.12.2010,  13:53)
Цитата(CYBERDREAM @ 3.12.2010,  13:45)
глянь

Понятно, а если мне надо применить данный класс для нескольких прастранств имен, т.е. для нескольких страниц

Как то возможно его применть например у меня пространство имен a.forms{} и b.forms{} и мне надо применить к ним Ваш класс с пространством имен J
PM MAIL   Вверх
CYBERDREAM
Дата 3.12.2010, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I think, there4 I am
***


Профиль
Группа: Завсегдатай
Сообщений: 1096
Регистрация: 31.10.2006
Где: CyberLand

Репутация: 11
Всего: 28



просто ссылаешься на нужное пространство имен
в дизайнере:
Код

private WFA.TextBoxCharecters textbox1;
если правильно понял



--------------------
Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно)
Telegram, skype: kuchuk.artiom
PM MAIL WWW   Вверх
Yagmort
Дата 3.12.2010, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 339
Регистрация: 17.6.2009

Репутация: нет
Всего: -1



куда вставлять тут ? 
Код

namespace a.Forms
{  
 public partial class psy
{
protected global::System.Web.UI.WebControls.TextBoxCharecters TextBox1;
}
}

PM MAIL   Вверх
CYBERDREAM
Дата 3.12.2010, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I think, there4 I am
***


Профиль
Группа: Завсегдатай
Сообщений: 1096
Регистрация: 31.10.2006
Где: CyberLand

Репутация: 11
Всего: 28



Цитата(Yagmort @ 3.12.2010,  14:06)
куда вставлять тут ? 
Код

namespace a.Forms
{  
 public partial class psy
{
protected global::System.Web.UI.WebControls.TextBoxCharecters TextBox1;
}
}

у тебя ведь этот контрол находится не в пространстве имен System.Web.UI.WebControls.

Глянь мой пример, там в дизайнере как прописано


--------------------
Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно)
Telegram, skype: kuchuk.artiom
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.3945 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.