Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Программирование в среде .NET (ASP.NET,ADO.NET) на C#/VB.NET

Автор: vetal71
Дата сообщения: 07.10.2008 20:14
Lihonosov
Спасибо огромное. Сработало.
Автор: V0lt
Дата сообщения: 07.10.2008 22:14
Есть функция1, которая должна выполнять фукцию2 или функцию3. У 2-aя и 3-ья функции имеют одинаковые входные параметры. Могу ли я передать "указатель" на фукции 2 или 3 в качестве параметра для функции1? Как?
Автор: feor
Дата сообщения: 07.10.2008 22:57
V0lt
Это можно сделать при помощи делегатов. К примеру, если у тебя методы 2 и 3 возвращают void и принимают в качестве параметра bool, делегат надо объявить так:


Код: delegate void DelegateMethod(bool param);
Автор: CruelCrow
Дата сообщения: 07.10.2008 23:00
Windows Vista SP1 + IIS сервер.
Есть web-приложение, в нём папка Admin с .aspx-формами для администрирования.

Нужно, чтобы только пользователь Vasya, прописанный в локальных пользователях системы мог получить доступ к ресурсам этой папки. В перспективе - только пользователи домена интрасети 'DOMAIN' Vasya и Petya смогли бы получить доступ.

В Web.config корневого каталога прописано:

Код:
...

<authentication mode="Windows"></authentication>

...
Автор: skYmarine
Дата сообщения: 08.10.2008 10:29
Народ , объясните пожалуйста.

Как мне динамически добавить в Form1.Control объект нужного мне типа с НУЖНЫМ МНЕ именем.

Грубо говоря - у меня есть текстовый файл со строками (строк от 1й до 5)
В записимости от количества строк я создаю кнопки , а в зависимости от их содержания(строк в файле) я присваиваю им (Type)Control.Name и (Type)Control.Text.

Или единственный вариант это после Form1.Controls.Add((Control)Activator.CreateInstance(type)) сразу пробегать по
foreach (Control control in Form1.Controls)
{
if (control.Name == "") { control.Name = _то_что_мне_надо_ }
}

Кароче грубо говоря - можно ли динамически довавлять контролы не с именем "" а с желаемым именем ?
Автор: Lihonosov
Дата сообщения: 08.10.2008 11:20
удалено
Автор: Mike13x13
Дата сообщения: 08.10.2008 13:04
skYmarine

Цитата:
Кароче грубо говоря - можно ли динамически довавлять контролы не с именем "" а с желаемым именем ?

Можно, почему бы нет. Только вот с визуальнымы компонентами тебе придется решать задачу с "правильным!" их расположением, вообще, ничего особо сложного, но, на мой взгляд, довольно геморно.
Автор: eLLoco
Дата сообщения: 08.10.2008 15:25

Цитата:
Можно, почему бы нет. Только вот с визуальнымы компонентами тебе придется решать задачу с "правильным!" их расположением, вообще, ничего особо сложного, но, на мой взгляд, довольно геморно.

skYmarine, как, помогло?
Автор: skYmarine
Дата сообщения: 08.10.2008 22:24
Да , помогло

На самом деле я не стал изощрятся и пошел в лоб. Получились вложенные foreach'и и томуподобное , но то что надо - генерируется.

Конечно, довольно не сложно, но порядком геморно, хотя и не смертельно.

Если бы компоненты были не графическими было-бы попроще но тоже не просто.

вбр.
Автор: Filomat
Дата сообщения: 12.10.2008 12:57
Я ищу checkbox'ы на форме:

for (int i = 0; i < this.Controls.Count; i++)
if (this.Controls[i].GetType().Name.ToString() == "CheckBox")
this.Controls[i].Checked = true;

Но как обратиться к свойству Checked?
Автор: eLLoco
Дата сообщения: 12.10.2008 13:04
Filomat

Цитата:
this.Controls[i].Checked = true;


Необходимо приведение типов, что-то вроде:
(CheckBox)(this.Controls[i]).Checked = true;

А то ты пытаешься получить это свойство у Control, а у него его нет.

Приведение возможно, если тип, к которому приводишь, совпадает (boxing/unboxing), является наследником, либо реализует интерфейс приводимого типа.
Автор: feor
Дата сообщения: 12.10.2008 13:10
Filomat
В дополнение к вышесказанному, тип объекта нужно не через сравнение строк определять, а при помощи ключевых слов as или is. Ваш пример я бы переписал вот так:


Код:
foreach(Control control in Controls)
{
if(control is CheckBox)
{
((CheckBox) control).Checked = true;
}
}
Автор: BaluBig
Дата сообщения: 12.10.2008 13:31
feor
Приведение типа ты фактически делаешь дважды, а это достаточно дорогая операция. Поэтому лучше так:

Код:
foreach(Control control in Controls)
{
CheckBox cb = control as CheckBox;
if(cb != null) cb.Checked = true;
}
Автор: eLLoco
Дата сообщения: 12.10.2008 16:53
BaluBig, все в точку. У формы в методах наподобие FindControl даже bool-параметр есть "искать рекурсивно".
Автор: 085
Дата сообщения: 13.10.2008 08:10
Люди хелп ткните пожалуйста носом куда копать. Нужно по buttonclick перейти на другую веб-страницу моего проекта
Автор: GastonR
Дата сообщения: 13.10.2008 09:43
085

Цитата:
Люди хелп ткните пожалуйста носом куда копать. Нужно по buttonclick перейти на другую веб-страницу моего проекта

Если нужен переход на твою страницу лучше воспользоватся Server.Transfer, если же на внешний ресурс то Response.Redirect.

Код:
protected void Button1_Click(object sender, EventArgs e)
{
    Server.Transfer("~/Page2.aspx");
}

protected void Button2_Click(object sender, EventArgs e)
{
    Response.Redirect("http://ya.ru");
}
Автор: 085
Дата сообщения: 13.10.2008 10:14
GastonR
спасибо!!!
Автор: kronos83
Дата сообщения: 14.10.2008 15:18
Люди, помогите, кто знает как вытащить все значения из ИНИ файла EditPackages в CheckedListBox

[Editor]
CacheSizeMegs=6
GridEnabled=True
SnapVertices=True
SnapDistance=10.000000
GridSize=(X=16.000000,Y=16.000000,Z=16.000000)
RotGridEnabled=True
RotGridSize=(Pitch=1024,Yaw=1024,Roll=1024)
EditPackages=Core
EditPackages=Engine
EditPackages=Editor
EditPackages=Fire
EditPackages=IpDrv
EditPackages=UWindow
EditPackages=UBrowser
EditPackages=Extension
EditPackages=DeusExUI
EditPackages=ConSys
EditPackages=DeusExConversations
EditPackages=DeusExSounds
EditPackages=DeusExItems
EditPackages=DeusExDeco
EditPackages=DeusExCharacters
EditPackages=MPCharacters
EditPackages=DeusExText
EditPackages=IpServer
EditPackages=DeusEx
EditPackages=VSDDX
EditPackages=Endemia
EditPackages=TargetScr

Добавлено:
Это я пробую писать на VB.NET 2008
Автор: GastonR
Дата сообщения: 14.10.2008 16:04
kronos83

Цитата:
как вытащить все значения из ИНИ файла

В .NET нет средств для работы с ini-файлами, но обрабатывать ini-файлы можно с помощью Win32 API.
Read/Write to .ini files in vb.net
Автор: kronos83
Дата сообщения: 14.10.2008 16:18
Спасибо за ответ, GastonR
Пробовал так делать.
Но оно берет первое значение, а тут значений много (EditPackages)
Вот бы с этим как-то... в листбокс
Автор: Mike13x13
Дата сообщения: 14.10.2008 16:37
kronos83

Цитата:
Пробовал так делать.
Но оно берет первое значение, а тут значений много (EditPackages)
Вот бы с этим как-то... в листбокс

Напиши отдельный маленький класс для работы с ини-файлами нужной тебе структуры и с нужной тебе логикой. Просто и удобно.
Автор: eLLoco
Дата сообщения: 14.10.2008 16:59
kronos83
XML пользовать для хранения настроек не получится? Если нет, то вот этот класс попробуй. Если не подходит - по линкам попрыгай.

Добавлено:
Прочитал твою проблему с начала - есть подозрение, что это одноразовая задача. В таком случае не стоит городить никакой обработки INI-файлов, а просто найти в файле все строки, начинающиеся с EditPackages и извлечь строки от "=" до конца строки.

А уж получившиеся строки ты должен суметь в ListBox запихать.
Автор: kronos83
Дата сообщения: 14.10.2008 17:33
Всем спасибо за ответы.
Сделал функцию как писал Mike13x13, хоят обошолся без класса.
А вот пропарсил как eLLoco написал. Запихнул.
На получится правда редактировать такой ини этой функцией, но зато в листбоксе есть то что нужно))

Добавлено:
Вот это переработал, кому интересно

Код:
Public Function ReadIniFile(ByVal filename As String) As List(Of String())
Dim IniContents As New List(Of String())
If Not IO.File.Exists(filename) Then
Return IniContents
End If
Using INIFileParser As FileIO.TextFieldParser = My.Computer.FileSystem.OpenTextFieldParser(filename, "=")
Dim CurrentLine() As String
With INIFileParser
.TrimWhiteSpace = True
Do While Not INIFileParser.EndOfData
CurrentLine = .ReadFields()
If CurrentLine(0).Length > 0 Then
Select Case CurrentLine(0).Substring(0, 1)
Case ";"
'ignore comments
Case "["
'section header
IniContents.Add(New String() {CurrentLine(0), CurrentLine(0)})
Case Else
IniContents.Add(New String() {CurrentLine(0), CurrentLine(1)})
End Select
End If
Loop
End With
End Using
Return IniContents
End Function
Автор: IkaryG
Дата сообщения: 21.10.2008 23:28
Всем привет, есть вопрос

Описание задачи:

В распоряжениb веб страница (язык VB.NET), на ней ссылка на другую страницу и iframe где собственно открывается страница, но страница которая открывается, запрашивает логин и пароль (IIS/Windows Authentication).

Вопрос:

Как в ifram'e открыть страницу передав логин и пароль в коде?
Может есть еще какое решение?
Автор: SUShadow
Дата сообщения: 22.10.2008 12:56
Уважаемые господа, есть вопрос.
У меня есть оконная программа на C#. И есть 2-а класса.
1-ий класс обынчный класс создаваемый средой разаботки. (Там где все действия на нажатия кнопок описываються)
2- ой собственный клас.
Так вот мне с собственого класса надо поменять значения comboBox. Как мне получить к нему доступ?

Код:
namespace BS_Upload
{
public partial class Form1 : Form
{
}
public class SQL_Conn
{
public void AddComb()
{
//Тут мне надо поменять значения ComboBox1, но когад пишу ComboBox1.Items.Add - получаю ошибку. Хоть доступ к элементу Form1 есть но там ComboBox1 нету.

}
}

}
Автор: Lihonosov
Дата сообщения: 22.10.2008 15:23
SUShadow
Сделайте в 1 классе public метод для работы с ComboBox, а из второго класса уже вызывайте этот метод.
Автор: SUShadow
Дата сообщения: 22.10.2008 18:48
2Lihonosov Можно ещё один небольшой вопрос.Как мне теперь получить доступ к этому методу?

Код:
namespace BS_Upload
{
public partial class Form1 : Form
{
public void ComboAdd(string Item)
{
ComboBox3.Items.Add(Item);
}
}
public class SQL_Conn
{
public void AddComb()
{
//Можно пожалуйста показать как мне отсюда получить доступ к ComboAdd?

}
}

}

Автор: Lihonosov
Дата сообщения: 22.10.2008 20:21
SUShadow

Код: Form1 myForm=new Form1();
myForm.ComboAdd("MyItem");
Автор: SUShadow
Дата сообщения: 23.10.2008 13:21
Пробую так

Код:
using Form1 myForm=new Form1();
myForm.ComboAdd("MyItem");
Автор: Lihonosov
Дата сообщения: 23.10.2008 17:42
SUShadow
using я не в то окно набрал . Его использовать можно, но с правильным его синтаксисом (см. MSDN).
Аналог using это конструкция try{} finally {}
Вам нужно объявить объект класса Form1

Код: Form1 myForm = new Form1();

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102

Предыдущая тема: Как удалить/добавить/отключить/включить устройство?


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.