Custom TextBox with DefaultLanguage Property и Properties Vi

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

Дремучий
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 15.02.2010 (Пн) 14:02

Custom TextBox with DefaultLanguage Property и Properties Vi

Сообщение Дремучий » 15.02.2010 (Пн) 14:12

Наверное, это просто, но я еще не умею... :roll:

Создаю свой объект без труда:

Код: Выделить всё
Public Class MyTextBox
    Inherits TextBox

    Public Sub New()
        MyBase.New()

    End Sub

    Public Property DefaultLanguage() As String
        Get
            Return InputLanguage.CurrentInputLanguage.Culture.DisplayName

        End Get
        Set(ByVal value As String)
            For Each Lng As InputLanguage In InputLanguage.InstalledInputLanguages
                If Lng.Culture.DisplayName.ToUpper.Contains(Lng.ToString.ToUpper) Then InputLanguage.CurrentInputLanguage = Lng

            Next
        End Set
    End Property
End Class

Нахожу его в объектах и вставляю на форму. В свойствах появилось новое DefaultLanguage = "English (United States)"
Все отлично! А как сделать, чтобы в самих свойствах появлялся бы не текст бокс, а комбо бокс со всеми доступными языками?

Спасибо!

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Custom TextBox with DefaultLanguage Property и Properties Vi

Сообщение Денис » 15.02.2010 (Пн) 14:21

Какой тип данных имеет возвращаемый элемент InputLanguage.CurrentInputLanguage.Culture.DisplayName?

Вот такого типа должно быть Ваше свойство (вместо as String в объявлении свойства и в объявлении Value в блоке Set)
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Дремучий
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 15.02.2010 (Пн) 14:02

Re: Custom TextBox with DefaultLanguage Property и Properties Vi

Сообщение Дремучий » 15.02.2010 (Пн) 15:07

Простите, не понял. Тип InputLanguage.CurrentInputLanguage.Culture.DisplayName - стринг

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Custom TextBox with DefaultLanguage Property и Properties Vi

Сообщение Денис » 15.02.2010 (Пн) 16:15

Дремучий писал(а):Простите, не понял. Тип InputLanguage.CurrentInputLanguage.Culture.DisplayName - стринг


Не знаю, как показать, студии под рукой нет.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Дремучий
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 15.02.2010 (Пн) 14:02

Re: Custom TextBox with DefaultLanguage Property и Properties Vi

Сообщение Дремучий » 15.02.2010 (Пн) 16:23

Попробуйте на пальцах :D

Dmitriy2003
Постоялец
Постоялец
 
Сообщения: 690
Зарегистрирован: 27.05.2003 (Вт) 22:47
Откуда: Deutschland

Re: Custom TextBox with DefaultLanguage Property и Properties Vi

Сообщение Dmitriy2003 » 15.02.2010 (Пн) 18:12

Дремучий писал(а):Попробуйте на пальцах

MSDN

Дремучий
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 15.02.2010 (Пн) 14:02

Re: Custom TextBox with DefaultLanguage Property и Properties Vi

Сообщение Дремучий » 15.02.2010 (Пн) 18:39

Dmitriy2003 писал(а):
Дремучий писал(а):Попробуйте на пальцах

MSDN

Я, правда, искал. Но, как-то, не нашел похожее. Вероятно, еще не умею как следует искать. Не возражаю, если ткнете носой!
Я попробовал добавить другие свойства, типа булеан или перечисляемый тип. Все получается. Но как придать тип проперти InputLanguage.CurrentInputLanguage.Culture.DisplayName не понимаю. И ничего пока не получается. Пробовал массив и коллекцию. Видимо, плохо пробую... :roll:

Dmitriy2003
Постоялец
Постоялец
 
Сообщения: 690
Зарегистрирован: 27.05.2003 (Вт) 22:47
Откуда: Deutschland

Re: Custom TextBox with DefaultLanguage Property и Properties Vi

Сообщение Dmitriy2003 » 15.02.2010 (Пн) 18:49

сделай свой эдитор, значения бери из InputLanguage.InstalledInputLanguages, если не судьба придумай как преобразовать InputLanguageCollection в emun тогда сможеш воспользоваться едитором по умолчанию :)

Дремучий
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 15.02.2010 (Пн) 14:02

Re: Custom TextBox with DefaultLanguage Property и Properties Vi

Сообщение Дремучий » 15.02.2010 (Пн) 19:07

Dmitriy2003 писал(а):сделай свой эдитор, значения бери из InputLanguage.InstalledInputLanguages, если не судьба придумай как преобразовать InputLanguageCollection в emun тогда сможеш воспользоваться едитором по умолчанию :)

С Enum заманчиво. Но не понятно. Как можно преобразовать массив или коллекцию в Enum? Примерчиков не найдется?
А на что Денис намекал?

Dmitriy2003
Постоялец
Постоялец
 
Сообщения: 690
Зарегистрирован: 27.05.2003 (Вт) 22:47
Откуда: Deutschland

Re: Custom TextBox with DefaultLanguage Property и Properties Vi

Сообщение Dmitriy2003 » 15.02.2010 (Пн) 19:19

Дремучий писал(а):С Enum заманчиво.

Не, незаманчиво :?

Дремучий
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 15.02.2010 (Пн) 14:02

Re: Custom TextBox with DefaultLanguage Property и Properties Vi

Сообщение Дремучий » 15.02.2010 (Пн) 19:53

Dmitriy2003 писал(а):
Дремучий писал(а):С Enum заманчиво.

Не, незаманчиво :?

:oops:
А что заманчиво?
Как бы это без интриг код или ссылочку получить?

Dmitriy2003
Постоялец
Постоялец
 
Сообщения: 690
Зарегистрирован: 27.05.2003 (Вт) 22:47
Откуда: Deutschland

Re: Custom TextBox with DefaultLanguage Property и Properties Vi

Сообщение Dmitriy2003 » 15.02.2010 (Пн) 19:59

Дремучий писал(а):Как бы это без интриг код или ссылочку получить?

Нет никаких интриг, а ссылочку вы уже получили (на пальцах) - мне что за вас код написать :?:
MSDN
Последний раз редактировалось Dmitriy2003 15.02.2010 (Пн) 20:05, всего редактировалось 1 раз.

Дремучий
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 15.02.2010 (Пн) 14:02

Re: Custom TextBox with DefaultLanguage Property и Properties Vi

Сообщение Дремучий » 15.02.2010 (Пн) 20:04

Dmitriy2003 писал(а):
Дремучий писал(а):Как бы это без интриг код или ссылочку получить?

Нет никаких интриг, а ссылочку вы уже получили (на пальцах) - мне что за вас код написать :?:

Плохо видеть к старости стал: из пальцев вижу только "фигуру", ссылок не вижу вовсе...

А что, слабо код тиснуть?

Dmitriy2003
Постоялец
Постоялец
 
Сообщения: 690
Зарегистрирован: 27.05.2003 (Вт) 22:47
Откуда: Deutschland

Re: Custom TextBox with DefaultLanguage Property и Properties Vi

Сообщение Dmitriy2003 » 15.02.2010 (Пн) 20:06

Дремучий писал(а):А что, слабо код тиснуть?

Мне то какой интерес :?: может гугл вам поможет

Дремучий
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 15.02.2010 (Пн) 14:02

Re: Custom TextBox with DefaultLanguage Property и Properties Vi

Сообщение Дремучий » 15.02.2010 (Пн) 20:12

Я новичек здесь на форуме, правил еще не знаю. Что, консультацию можно получить только за интерес? Извините, тогда, адресом ошибся... Или правила форума не до конца прочел?

В каком посте был ответ? Что я пропустил?

Dmitriy2003
Постоялец
Постоялец
 
Сообщения: 690
Зарегистрирован: 27.05.2003 (Вт) 22:47
Откуда: Deutschland

Re: Custom TextBox with DefaultLanguage Property и Properties Vi

Сообщение Dmitriy2003 » 15.02.2010 (Пн) 20:20

Дремучий писал(а):Я новичек здесь на форуме, правил еще не знаю. Что, консультацию можно получить только за интерес? Извините, тогда, адресом ошибся...

Это форум, а не кабинет гинеколога, не-можете родить не рожайте

Дремучий
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 15.02.2010 (Пн) 14:02

Re: Custom TextBox with DefaultLanguage Property и Properties Vi

Сообщение Дремучий » 15.02.2010 (Пн) 20:32

Dmitriy2003 писал(а):
Дремучий писал(а):Я новичек здесь на форуме, правил еще не знаю. Что, консультацию можно получить только за интерес? Извините, тогда, адресом ошибся...

Это форум, а не кабинет гинеколога, не-можете родить не рожайте

Видимо, эта фраза к вам и относится. Я то новичек - еще неизвестно, могу я рожать или нет...

Dmitriy2003
Постоялец
Постоялец
 
Сообщения: 690
Зарегистрирован: 27.05.2003 (Вт) 22:47
Откуда: Deutschland

Re: Custom TextBox with DefaultLanguage Property и Properties Vi

Сообщение Dmitriy2003 » 15.02.2010 (Пн) 20:36

Дремучий писал(а):Видимо, эта фраза к вам и относится. Я то новичек - еще неизвестно, могу я рожать или нет...

Да-уж, пока кроме флуда, ничего толкового из вас не выходит :) , если и дальше так продолжать будете, сдается мне мы никогда не узнаем - какой вы "Дремучий" - перец.

Дремучий
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 15.02.2010 (Пн) 14:02

Re: Custom TextBox with DefaultLanguage Property и Properties Vi

Сообщение Дремучий » 16.02.2010 (Вт) 9:04

Dmitriy2003 писал(а):
Дремучий писал(а):Видимо, эта фраза к вам и относится. Я то новичек - еще неизвестно, могу я рожать или нет...

Да-уж, пока кроме флуда, ничего толкового из вас не выходит :) , если и дальше так продолжать будете, сдается мне мы никогда не узнаем - какой вы "Дремучий" - перец.

Кто еще больше флудит, и кто кого к флуду понуждает...
А дельные советы, вообще, можно получить?

Dmitriy2003
Постоялец
Постоялец
 
Сообщения: 690
Зарегистрирован: 27.05.2003 (Вт) 22:47
Откуда: Deutschland

Re: Custom TextBox with DefaultLanguage Property и Properties Vi

Сообщение Dmitriy2003 » 16.02.2010 (Вт) 13:29

Дремучий писал(а):Кто еще больше флудит, и кто кого к флуду понуждает...

И в мыслях небыло побуждать вас к флуду :)
Дремучий писал(а):А дельные советы, вообще, можно получить?

Я вот последовал своим-же советам ...
Изображение

Дремучий
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 15.02.2010 (Пн) 14:02

Re: Custom TextBox with DefaultLanguage Property и Properties Vi

Сообщение Дремучий » 16.02.2010 (Вт) 14:31

Красиво! У меня пока так не получается...
Код увидеть можно? Все одно уже он написан. Только скопировать осталось

Dmitriy2003
Постоялец
Постоялец
 
Сообщения: 690
Зарегистрирован: 27.05.2003 (Вт) 22:47
Откуда: Deutschland

Re: Custom TextBox with DefaultLanguage Property и Properties Vi

Сообщение Dmitriy2003 » 16.02.2010 (Вт) 14:46

Дремучий писал(а):Код увидеть можно? Все одно уже он написан. Только скопировать осталось

Простой копипаст вам не поможет, это во первых, во вторых - код просто реализует одно свойство и до нормального компонента ему далеко, очевидно что я не вижу смысла в реализации этого свойства в компоненте (кроме как для примера создания собственных UITypeEditor).

Могу порекомендовать книгу:
Павел Агуров
Разработка Компонентов в MS Visual Studio 2005/2008
ISBN: 978-5-9775-0295-5

она поможет вам в получении базовых знаний о проектирование компонентов, особенно если у вас проблемы с английским языком.
(непременно покупать для начала нет необходимости, просторы веб помогут в поиске... и предварительном ознакомлении)

Дремучий
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 15.02.2010 (Пн) 14:02

Re: Custom TextBox with DefaultLanguage Property и Properties Vi

Сообщение Дремучий » 16.02.2010 (Вт) 16:13

Ну, и за то спасибо! По крайней мере понял, что кажущаяся простота данного вопроса на самом деле требует пристального изучения матчасти
А за ссылку спасибо. Воспользуюсь

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Custom TextBox with DefaultLanguage Property и Properties Vi

Сообщение iGrok » 16.02.2010 (Вт) 19:20

Дремучий, на самом деле необходимо знание англ. языка. Ну и некоторая тех. грамотность.
Дмитрий дал тебе сразу несколько ссылок, наводок и ключевых слов для поиска. Готовый код по ним состряпать не проблема.

Учти, что готовый код на этом форуме гарантированно можно получить только в разделе "Работа".
Ну либо если ты реально кого-то заинтересуешь.
label:
cli
jmp label

[WizarD]-GoSu
Новичок
Новичок
 
Сообщения: 36
Зарегистрирован: 08.10.2006 (Вс) 15:31
Откуда: Russia

Re: Custom TextBox with DefaultLanguage Property и Properties Vi

Сообщение [WizarD]-GoSu » 15.03.2010 (Пн) 17:47

Всем привет! Пытался задавать значение свойства TestString компонента таким вот странным способом. Форма вызывается только тогда, когда изменяю значение свойства TestString в Properties Panel(ну оно и понятно). Как вызвать форму кликом в Properties Panel (например, как выбор файла). Я читал, всё выше написанное и книгу уже скачал. Может есть более простой способ в моём случае? :)

Код: Выделить всё
    Public Property TestString() As String
        Get
            Return mTestString
        End Get
        Set(ByVal p_STRING As String)
            frmStringSelect.ShowDialog
            mTestString = frmStringSelect.TextBox1.Text
        End Set
    End Property


[WizarD]-GoSu
Новичок
Новичок
 
Сообщения: 36
Зарегистрирован: 08.10.2006 (Вс) 15:31
Откуда: Russia

Re: Custom TextBox with DefaultLanguage Property и Properties Vi

Сообщение [WizarD]-GoSu » 16.03.2010 (Вт) 13:13

Dmitriy2003 писал(а):
Дремучий писал(а):Код увидеть можно? Все одно уже он написан. Только скопировать осталось

Простой копипаст вам не поможет, это во первых, во вторых - код просто реализует одно свойство и до нормального компонента ему далеко, очевидно что я не вижу смысла в реализации этого свойства в компоненте (кроме как для примера создания собственных UITypeEditor).

Могу порекомендовать книгу:
Павел Агуров
Разработка Компонентов в MS Visual Studio 2005/2008
ISBN: 978-5-9775-0295-5

она поможет вам в получении базовых знаний о проектирование компонентов, особенно если у вас проблемы с английским языком.
(непременно покупать для начала нет необходимости, просторы веб помогут в поиске... и предварительном ознакомлении)



Прочитал книгу. Хотел поюзать редактор ObjectSelectorEditor и другие. Сделал Imports всего необходимого, не смог достучаться до этих классов в коде, хотя в Object Browser они есть и в книге написано как их юзать. Как раз по этому линку вчера сходил:



Всё сделал как хотел :) Вдруг кому надо, вот код.


Класс редактора:
Код: Выделить всё
Option Explicit On
Option Strict On

Friend Class clsTagEditor
    Inherits UITypeEditor

    Public Overrides Function GetEditStyle(ByVal context As System.ComponentModel.ITypeDescriptorContext) As UITypeEditorEditStyle
        Return UITypeEditorEditStyle.Modal
    End Function

    Public Overrides Function EditValue(ByVal context As ITypeDescriptorContext, ByVal provider As IServiceProvider, ByVal value As Object) As Object
        frmOPCObjects.TextBox1.Text = CStr(value)
        'Отображаем форму для выбора значения свойства
        If frmOPCObjects.ShowDialog = DialogResult.OK Then
            Return frmOPCObjects.TextBox1.Text
        Else
            Return value
        End If

    End Function

End Class


Класс формы:
Код: Выделить всё
Imports System.Windows.Forms

Public Class frmOPCObjects
    Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click
        Me.DialogResult = System.Windows.Forms.DialogResult.OK
        Me.Close()
    End Sub

    Private Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel_Button.Click
        Me.DialogResult = System.Windows.Forms.DialogResult.Cancel
        Me.Close()
    End Sub

End Class


И свойство компонента для которого всё это делалось :)
Код: Выделить всё
    <Editor(GetType(clsTagEditor), GetType(UITypeEditor))> Public Property TagID() As String
        Get
            Return mOPCTag
        End Get
        Set(ByVal p_VALUE As String)
            mOPCTag = p_VALUE
        End Set
    End Property


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5

    TopList