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

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

Автор: blaro
Дата сообщения: 07.01.2010 09:30
Omicron_Persey_8

Цитата:
В принципе, checkBox можно сериализовать и засунуть в ресурсы, а при исполнении десериализовать и рисовать на форме.

Здесь уже говорили, что нельзя сериализовать CheckBox.


Цитата:

Можно попробовать его засунуть в Settings, если кодишь из студии.

Как это делают? Я не знаком со студией хорошо.

V0lt

Цитата:
можно и в реестр, чтобы файлов не плодить

У меня уже есть файл config.ini. Вот в него я записываю все конфиги.
Автор: derelict
Дата сообщения: 07.01.2010 13:34

Цитата:
Можно попробовать его засунуть в Settings, если кодишь из студии.

Это будет тоже самое, что запись в файл, только файл будет не ini, а xml.
Автор: blaro
Дата сообщения: 07.01.2010 14:05

Цитата:
Это будет тоже самое, что запись в файл, только файл будет не ini, а xml.

Короче, концепция одна и таже. Запись в файл. Хорошо.
Вот у меня в файл новые Checkbox'ы записываются так:

Цитата:

[CheckBox1]
Name=xxx
Location={x,y}
Size={h,w}

[CheckBox2]
Name=yyy
Location={x,y}
Size={h,w}
.
.
.

Вот как написать функцию, чтобы она восстанавливала эти CheckBox'ы сама?
Автор: violant
Дата сообщения: 07.01.2010 14:16
Подскажите пожалуйста.
ASP.NET VS2008. У некой проги есть API через HTTP POST REQUEST.
Делаю HTTP POST REQUEST вот так

Код:
WebRequest request = WebRequest.Create("http://"+ServerIP+":"+ServerPort+"/servlets/RequestServlet?");
// Set the Method property of the request to POST.
request.Method = "POST";
// Create POST data and convert it to a byte array.
//string postData = "This is a test that posts this string to a Web server.";
byte[] byteArray = Encoding.UTF8.GetBytes(postData);
// Set the ContentType property of the WebRequest.
request.ContentType = "application/x-www-form-urlencoded";
// Set the ContentLength property of the WebRequest.
request.ContentLength = byteArray.Length;
// Get the request stream.
Stream dataStream = request.GetRequestStream();
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close();
Автор: derelict
Дата сообщения: 07.01.2010 14:27
blaro
Приблизительно так:

Код:
private void LoadCheckboxes(string fileName)
{
IConfigSource source = new IniConfigSource(fileName);
foreach (IniConfig curConfig in source.Configs)
{
try
{
if (curConfig.Name.IndexOf("CheckBox") != -1)
{
if (this.Controls.Find(curConfig.Name, true).Length == 0)
{
CheckBox check = new CheckBox();
check.Location = new Point(int.Parse(curConfig.Get("X", "0")), int.Parse(curConfig.Get("Y", "0")));
check.Size = new Size(int.Parse(curConfig.Get("Width", "0")), int.Parse(curConfig.Get("Height", "0")));
check.Name = curConfig.Name;
check.Text = curConfig.Get("Name", curConfig.Name);
this.Controls.Add(check);
}
}
}
catch (Exception) { }
}
}
Автор: dneprcomp
Дата сообщения: 07.01.2010 22:59
JokerX
Скачать не дает

Цитата:
Unfortunately right now our servers are overloaded and we have no more download slots left for non-members

Но, собствено, это и не важно. Для програмы написанной на .NET не должно быть никакой разницы как подсоединен принтер. Создается Document и он направляется на выбранный принтер.
Или работа происходит все-таки не с принтером?
Автор: AutoIT
Дата сообщения: 08.01.2010 06:44
Народ, киньте ктонить пожалуйста пример как можно интергировать Silverlight приложение (интерфейс) в Windows Forms Application. Задумка такая, хочу написать интерфейс на XAML под Silverlight и прикрутить его к виндовскому окошку. Как при этом будет осуществлятся взаимодействие между управляющими элементами интерфейса Silverlight и классами Windows Forms Application? Примеры, ссылки на Инфу.
Автор: Omicron_Persey_8
Дата сообщения: 08.01.2010 15:16
blaro
Сериализация - это процесс перевода структуры данных в последовательность байтов, а не исключительно SoapFormatter.Serialize().
Хотя все варианты, которые я предлагал суть сохранение определенных свойств в файл. Как все-таки понимать
Цитата:
что надо в саму программу добовлять без записи в файл
?
Автор: murkovich
Дата сообщения: 08.01.2010 15:47
AutoIT

Цитата:
Народ, киньте ктонить пожалуйста пример как можно интергировать Silverlight приложение (интерфейс) в Windows Forms Application. ...

Ты уверен, что именно это то, чего Тебе надо? Если интерфейс на xaml, то почему хочешъ windows forms, а не wpf?
Автор: GastonR
Дата сообщения: 08.01.2010 19:20
AutoIT

Цитата:
как можно интергировать Silverlight приложение (интерфейс) в Windows Forms Application

Может быть поможет.
Silverlight 2.0 integration with Windows Forms
Если не секрет, зачем эта интеграция? Работать-то Silverlight плагин будет в компоненте WebBrowser.
Автор: JokerX
Дата сообщения: 09.01.2010 16:39
dneprcomp
Ссылка на letitbit
Автор: dneprcomp
Дата сообщения: 09.01.2010 20:37
JokerX
Ну и что надо делать с этим екзешником? Exe-файлы переделке не подлежат.
Если представленная программа проводит какую-либо специфическую тестировку именно параллельного порта, то переделать ее на USB не получится. Разные порты - разные подходы и протоколы.
В любом случае, что именно и как делает(или должна) программа все равно неизвестно.
Этот тема называется "Программирование в среде .NET". Есть код и вопросы по нему - ты в правильном топике.
А нет, так вон наверху раздела темка висит - "Объявления о работе для программистов"
Автор: AutoIT
Дата сообщения: 09.01.2010 20:41
murkovich
GastonR
Не исключенно что я не в ту степь смотрю =)
Я хочу сделать красивый флэш интерфейс для виновского приложения.
В болванке wpf не нашел необходимых оснасток, таких как таймер и пр.
Автор: derelict
Дата сообщения: 10.01.2010 01:35
AutoIT
Я так понимаю, что ты имеешь в виду, что таймер не нашел среди визуальных компонентов? В WPF таймер невизуальный, пример можешь посмотреть тут: WPF Timer.
Автор: blaro
Дата сообщения: 10.01.2010 20:24
derelict
Спасибо за функцию. А вот еще, у меня каждый раз когда открывается окно конфигов, то все записи в файле стираются. Как этого избежать? Первый раз, когда открываю окно и добавляю новый checkbox и сохраняю, то все нормально. Второй раз когда открываю окно то checkbox появляется на своем месте. А третий раз когда открываю окно то новый checkbox не появляется потому что он не записан в файл.
Я подумал, что перед тем как открыть окно конфигов, записать все из файла в другое место типо буфер какой нибудь. А потом, перед сохранением проверять были ли новые добавления. Если да, то перезаписывать файл, если нет, записывать старую версию из буфера. Это хорошая идея, или нет?
Автор: derelict
Дата сообщения: 10.01.2010 23:35
blaro
Смутно понял, в чем конкретно проблема. Покажи код окна конфигов или весь проект.
Автор: GastonR
Дата сообщения: 11.01.2010 09:23
AutoIT

Цитата:
Я хочу сделать красивый флэш интерфейс для виновского приложения.

Silverlight не нужен WPF обладает бОльшим функционалом/набором классов по сравнению с Silverlight.
Автор: sfxhorse
Дата сообщения: 11.01.2010 09:33
Отдельная функция формирует файл (в рассматриваемом случае документ Word) и возвращает полный путь к этому файлу. Пытаюсь открыть файл через Process.Start(), но на отдельных машинах файл не открывается, более того экземпляров процессов winword в диспетчере задач не видно и исполняющая среда молчит (т.е. ни эксепшенов обработанных мною, ни эксепшенов провалившихся до уровня исполняющей среды не возникает).

Понимаю, что реализация местами кривовата, но все же почему ??: Идеи у кого-нибудь есть?

P.s. изменение переменной среды %TMP% на C:\Temp эффекта не дает.


Код:
try
{
reportCreationThread = System.Threading.Thread.CurrentThread;
string tempDir = Environment.GetEnvironmentVariable("TMP");
tempDir = (tempDir == "" || tempDir == null)
? Application.StartupPath :
tempDir;
string fName = this.targetReport.CreateReport(DBConnection, Application.StartupPath, tempDir);
CreatedReportFiles.Add(fName);
var proc = new System.Diagnostics.Process();
proc.StartInfo.FileName = fName;
var wellStarted = proc.Start();

if (targetReport.PostCreationAction != null)
{
/*
* будет ждать успешного завершения процесса, если его удалось запустить.
* Процесс не сможет корректно запуститься, если:
* - уже открыт экземпляр приложения (для Ворда)
* Также придется ждать завершения приложения, а не закрытия документа
*/

if (wellStarted)
{
this.SetProgressInfo(new ProgressInfo(-1, "Ожидание завершения работы пользователя с отчетом..."));
proc.WaitForExit();
}
var re = new ReportPostCreationEventArgs();
targetReport.PostCreationAction(re);
if (re.FileNames.Count > 0)
{
foreach (var file in re.FileNames)
{
System.Diagnostics.Process.Start(file);
}
}
}
}
catch (ThreadAbortException)
{
messenger.AddMessage("Прервано пользователем.", ErrorsTypes.important);
}
catch (EmptyReportParameterException ex)
{
messenger.AddMessage(ex.Message, ex, ErrorsTypes.critical);
}
catch (ApplicationException ex)
{
messenger.AddMessage(ex.Message, ex, ErrorsTypes.critical);
}
catch (System.Runtime.InteropServices.COMException ex)
{
messenger.AddMessage("В процессе вывода информации произошло неизвестное исключение " +
ex.GetType().FullName + ":\n" + ex.Message.Replace('\r', '\n'),
ex,
ErrorsTypes.critical);
}
catch (Exception ex)
{
messenger.AddMessage("В процессе формирования отчета возникла непредвиденная ошибка:\n" +
ex.Message + "\nФормирование отчета прервано.",
ex,
ErrorsTypes.critical);
}
finally
{
this.SetProgressInfo(new ProgressInfo(-1, ""));
reportCreationThread = null;
}
Автор: Omicron_Persey_8
Дата сообщения: 11.01.2010 15:35
Никто не интересовался, как получить иконку, которая ассоциирована в винде с файлом или папкой? Для файла можно воспользоваться Icon.ExtractAssociatedIcon(), а для папки?

Добавлено:
sfxhorse
А попробуй для запуска Ворда в Process.StartInfo.FileName писать не имя вордового документа, а путь к исполняему файлу ворда и через пробел путь к открываемому файлу в качестве параметра командной строки.
Автор: sfxhorse
Дата сообщения: 11.01.2010 16:04
Проблема в том, что функция может возвращать любой файл отчета (Word, Excel, txt, odt и т.д.) и типы возвращаемых файлов заранее предсказать невозможно... Плюс ошибка нерегулярная и, допустим, на моей машине воспроизвести не получается
Автор: blaro
Дата сообщения: 11.01.2010 17:38
derelict
Начну с начала и по порядку.
1) Открываю окно конфигов. Все содержимое файла config.ini удаляется.
2) Добавляю новый checkbox и сохраняю конфиги. Все конфиги и параметры checkbox'а также записываются в файл.
3) Открываю заново окно конфигов. Новый, добавленый checkbox появляется на своем месте. В файле config.ini сохраняются все конфиги, а параметры восстановленного checkbox'а уже не записываются, потому что их нет. Файл в момент сохранения перезаписывается и объект не сохраняется.
4) Нажимаю "Сохранить" и окно закрывается.


Добавлено:
5) Открываю окно заново и нового checkbox'a нет. И в файле его параметры отсутствуютю
Автор: derelict
Дата сообщения: 13.01.2010 13:03
blaro
Сильно запутанная какая-то схема. При сохранении настроек можно же просто пройтись по всем имеющимся на данный момент чекбоксам и записать их параметры в файл.
Автор: blaro
Дата сообщения: 13.01.2010 18:28
derelict

Цитата:
При сохранении настроек можно же просто пройтись по всем имеющимся на данный момент чекбоксам и записать их параметры в файл.

Я это и сделал. И все было записано в файл. После этого открыл окно с конфигами и все было восстановлено на свои места. Снова закрыл, и файл перезаписался, только восстановленный чекбокс уже не был перезаписан в файл. Прога прочитала конфиги из файла, создала новый объект, и перезаписала файл в котором не записала параметры чекбокса.

Чувствую, что надо нарисовать
1) Открыли окно. Внесли изменения добавили новый чекбокс. Сохранили. Теперь файл выглядет так:

Цитата:

[Configs]
BackColor=green
ForeColor=red
.
.
.
[Extensions]
c=yes
cpp=no
cs=yes
asm=yes
.
.
.
[Checkbox1]
Name=ch1
Text=ch1
PosX=x
Poxy+y
Width=12
Height=12

2) Снова открыли окно. Все восстановилось и новый чекбокс тоже на своем месте. Закрываем окно. Теперь в файле записано следущее:

Цитата:

[Configs]
BackColor=green
ForeColor=red
.
.
.
[Extensions]
c=yes
cpp=no
cs=yes
asm=yes
ch1=yes
.
.
.

Заметь, параметры чекбокса уже не записываются.
3) Открываем окно и новый чекбокс не появляется.

Добавлено:
Надеюсь сейчас будет понятно..
Автор: derelict
Дата сообщения: 13.01.2010 18:50
blaro
Содержимое файла ты копировал? Там встречается у тебя Poxy+y, может в этом проблема?
Автор: blaro
Дата сообщения: 13.01.2010 19:59
derelict

Цитата:
Содержимое файла ты копировал?

Нет. Я это хочу сделать.


Цитата:
Там встречается у тебя Poxy+y, может в этом проблема?

Я ошибся. Это должно быть PosY=Y.
Автор: dneprcomp
Дата сообщения: 13.01.2010 21:22
blaro

Цитата:
параметры чекбокса уже не записываются

А нет ли в коде некоей переменной которая изменяется если пoявился новый чекбокс для записи в ini. После записи эта переменная сбрасывается и на второй записи естественно не записывает потому как новых нет.
Автор: blaro
Дата сообщения: 13.01.2010 21:58
dneprcomp

Цитата:
А нет ли в коде некоей переменной которая изменяется если пoявился новый чекбокс для записи в ini. После записи эта переменная сбрасывается и на второй записи естественно не записывает потому как новых нет.

Нет.
Автор: AutoIT
Дата сообщения: 14.01.2010 15:56
Хэлп.


Код: public partial class Form1 : Form
{

public Form1()
{
InitializeComponent();
}

public delegate void MyDelegate(string DelegateText);


private void Form1_Load(object sender, EventArgs e)
{

}
public void Thread_Th_1()
{
string Text1;
string Text2;
Form1 _form = new Form1();
MyDelegate D1 = new MyDelegate(_form.SetText1);
MyDelegate D2 = new MyDelegate(_form.SetText2);
while (1 == 1)
{
Text1 = textBox1.Text;
Text2 = textBox2.Text;
try
{
double Value1 = Convert.ToDouble(Text1);
double Value2 = Convert.ToDouble(Text2);
textBox3.Text = (Value1 * Value2).ToString();
}
catch
{
MessageBox.Show("Необходимо ввести число \n" + Text1 + "\n" + Text2);
D1("0");
D2("0");
}
}
}
public void Thread_Th_2()
{

}
public void Thread_Th_3()
{

}

private void button1_Click(object sender, EventArgs e)
{
System.Threading.Thread Thread_1;
Thread_1 = new System.Threading.Thread(Thread_Th_1);
Thread_1.Start();
}

public void SetText1(string DelegateText)
{
textBox1.Text = DelegateText;
}
}
Автор: StanFreeWare
Дата сообщения: 14.01.2010 16:31
AutoIT
Нужна проверка на InvokeRequired
Автор: AutoIT
Дата сообщения: 14.01.2010 17:53
С инвоком разобрался, народ помогите вот с чем:
Вот код кнопки:

Код: private void button1_Click(object sender, EventArgs e)
{
if (Thread_1.IsAlive == false)
{
System.Threading.Thread Thread_1;
Thread_1 = new System.Threading.Thread(Thread_Th_1);
Thread_1.Start();
}
else
{
Thread_1.Abort();
}

}

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102

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


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