powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Помогите начинающему
6 сообщений из 6, страница 1 из 1
Помогите начинающему
    #38874568
ughunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Делаю робкие первые шаги в мире си шарпа... так вот код на вб:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Public Class DocumentForm
        Default Public Property IsDirty(ByVal obj As Object) As Boolean
            Get
                Return _IsDirty
            End Get
            Set(ByVal value As Boolean)
                If Not obj.IsReadOnly Then
                    _IsDirty = value
                    If value Then
                        If TypeOf obj Is XtraForm Then SetActive(obj)
                    Else
                        If TypeOf obj Is XtraForm Then SetInActive(obj)
                    End If
                    _obj.Add(obj)
                    RaiseEvent DirtyChange(Caption)
                End If
            End Set
        End Property
End Class



код на шарпе
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
public class DocumentForm
    {
        private bool _IsDirty = false;
        public bool this[object obj]
        {
            get
            {
                return _IsDirty;
            }
            set
            {
                if (!obj.IsReadOnly)
                {
                    _IsDirty = value;
                    if (value)
                    {
                        if (obj is XtraForm)
                        {
                            SetActive(obj);
                        }
                    }
                    else
                    {
                        if (obj is XtraForm)
                        {
                            SetInActive(obj);
                        }
                    }
                    _obj.Add(obj);
                    if (DirtyChangeEvent != null)
                        DirtyChangeEvent(Caption);
                }
            }
        }
}



компилятор ругается нехорошими словами и обещает кару небесную:
Ошибка 1 "object" не содержит определение для "IsReadOnly". Не удалось найти метод расширения "IsReadOnly", принимающий первый аргумент типа "object" (пропущена директива using или ссылка на сборку?)
...
Рейтинг: 0 / 0
Помогите начинающему
    #38874590
Фотография D129
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ughunter,

if (!obj.IsReadOnly) - в этом месте обьект еще просто обьект, надо его привести к XtraForm
где есть определение IsReadOnly.

Код: c#
1.
2.
3.
4.
XtraForm xtObj = obj as XtraForm ;


if(!xtObj.IsReadOnly)
...
Рейтинг: 0 / 0
Помогите начинающему
    #38874629
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
D129ughunter,

if (!obj.IsReadOnly) - в этом месте обьект еще просто обьект, надо его привести к XtraForm
где есть определение IsReadOnly.

Код: c#
1.
2.
3.
4.
XtraForm xtObj = obj as XtraForm ;


if(!xtObj.IsReadOnly)


я не силен в бейсике, могу что-то недопонять.

Передача параметров в проперти в C# не практикуется. Индексер в C# тоже непонятно откуда взялся. У класса Object нет метода IsReadOnly, поэтому его нужно приводить к нужному типу
...
Рейтинг: 0 / 0
Помогите начинающему
    #38874647
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может как то так?

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
    public class TestCl
    {
        private IList<XtraForm> _objList = new List<XtraForm>(); 
        private bool _isDirty;

        public bool IsDirty
        {
            get { return _isDirty; }
            private set
            {
                _isDirty = value;
                if (DirtyChangeEvent != null) // че за события?
                    DirtyChangeEvent(Caption); // че за заголовок?
            }
        }

        public void SetDirty(XtraForm obj, bool isDirty)
        {
            if (!obj.IsReadOnly)
            {
                if (isDirty)
                {
                    SetActive(obj);
                }
                else
                {
                    SetInActive(obj);
                }

                _objList.Add(obj);

                IsDirty = isDirty;
            }
        }
    }
...
Рейтинг: 0 / 0
Помогите начинающему
    #38874700
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ughunterДелаю робкие первые шаги в мире си шарпа... так вот код на вб:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Public Class DocumentForm
        Default Public Property IsDirty(ByVal obj As Object) As Boolean
            Get
                Return _IsDirty
            End Get
            Set(ByVal value As Boolean)
                If Not obj.IsReadOnly Then
                    _IsDirty = value
                    If value Then
                        If TypeOf obj Is XtraForm Then SetActive(obj)
                    Else
                        If TypeOf obj Is XtraForm Then SetInActive(obj)
                    End If
                    _obj.Add(obj)
                    RaiseEvent DirtyChange(Caption)
                End If
            End Set
        End Property
End Class



код на шарпе
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
public class DocumentForm
    {
        private bool _IsDirty = false;
        public bool this[object obj]
        {
            get
            {
                return _IsDirty;
            }
            set
            {
                if (!obj.IsReadOnly)
                {
                    _IsDirty = value;
                    if (value)
                    {
                        if (obj is XtraForm)
                        {
                            SetActive(obj);
                        }
                    }
                    else
                    {
                        if (obj is XtraForm)
                        {
                            SetInActive(obj);
                        }
                    }
                    _obj.Add(obj);
                    if (DirtyChangeEvent != null)
                        DirtyChangeEvent(Caption);
                }
            }
        }
}



компилятор ругается нехорошими словами и обещает кару небесную:
Ошибка 1 "object" не содержит определение для "IsReadOnly". Не удалось найти метод расширения "IsReadOnly", принимающий первый аргумент типа "object" (пропущена директива using или ссылка на сборку?)converter.telerik.com
...
Рейтинг: 0 / 0
Помогите начинающему
    #38875172
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Antonariyconverter.telerik.com
А это-то здесь каким боком? Не пугайте человека
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Помогите начинающему
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]