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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> panel 
V
    Опции темы
Springtime
Дата 11.8.2010, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 221
Регистрация: 25.10.2006
Где: Россия, Тюмень

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



Цитата(larinva @  11.8.2010,  14:32 Найти цитируемый пост)
List<WorkStat> workstat = new List<WorkStat>(); //массив компов
private void button1_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < checkedListBox1.Items.Count; i++)
            {
                WorkStat workst = new WorkStat(checkedListBox1.Items[i].ToString() ,0, 0);
                  
тут нужно найденное добавить на panel form1    workst   
      
            }
}


где у тебя передача параметров в другую форму?

http://www.gotdotnet.ru/forums/3/38584/
--------------------
ICQ: 1fe410f46e7f48f6c721bc866d8294a2
PM MAIL ICQ   Вверх
larinva
Дата 11.8.2010, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата

тут нужно найденное добавить на panel form1    workst 

PM MAIL   Вверх
Springtime
Дата 11.8.2010, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 221
Регистрация: 25.10.2006
Где: Россия, Тюмень

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



Цитата(larinva @  11.8.2010,  15:07 Найти цитируемый пост)
тут нужно найденное добавить на panel form1    workst 

не добавишь ты контролы из одной формы в другую, ты можешь только передать параметры другой форме на создание по определённым правилам и с определёнными параметрами требуемых тебе контролов.
--------------------
ICQ: 1fe410f46e7f48f6c721bc866d8294a2
PM MAIL ICQ   Вверх
larinva
Дата 11.8.2010, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



мне и не нужно добавлять ни каких контролов, а нужно добавить массив компов которые нишлись на саму панель вот в таком виде user posted image должна получиться карта сети 
PM MAIL   Вверх
Springtime
Дата 11.8.2010, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 221
Регистрация: 25.10.2006
Где: Россия, Тюмень

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



Цитата(larinva @  11.8.2010,  15:21 Найти цитируемый пост)
добавить массив компов


бугага )))))

массив компов - это у тебя системные блоки с мониторами или без мониторов?
--------------------
ICQ: 1fe410f46e7f48f6c721bc866d8294a2
PM MAIL ICQ   Вверх
larinva
Дата 11.8.2010, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



с монитором
PM MAIL   Вверх
KelTron
Дата 11.8.2010, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 9
Всего: 38



Цитата(Springtime @  11.8.2010,  14:16 Найти цитируемый пост)
ДВЕ ФОРМЫ!!!!!

Цитата(Springtime @  11.8.2010,  14:16 Найти цитируемый пост)
НА ФОРМЕ-2 КНОПКА!

Цитата(Springtime @  11.8.2010,  14:16 Найти цитируемый пост)
ТО ЕСТЬ НА ФОРМУ-1!!!ЧТОБЫ ОДНА ФОРМА ВЗАИМОДЕЙСТВОВАЛА С ДРУГОЙ!!!!В ТОМ ЧИСЛЕ ДОБАВЛЯЛА ЭЛЕМЕНТЫ.

Без паники..)
Ладно, ты понял что надо сделать, но BeginInvoke тут вообще не при чём.

Цитата(larinva @  11.8.2010,  12:51 Найти цитируемый пост)
получается мне нужно передать в panel вот это. Как это сделать

Цитата(larinva @  11.8.2010,  13:52 Найти цитируемый пост)
мне нужно в panel вот это

Видимо тут только один выход остался, нужно произнести заклинание: "О, великая  panel! Прими от меня этот скромный дар - массив компов. И да будут они добавлены, и да построится карта сети! Аминь. "



--------------------
Тысячами незримых нитей обвивает тебя Закон. Разрубишь одну - преступник. Десять - смертник. Все - Бог.
Эвенгар Салладорский, основатель Школы Тьмы.
PM MAIL   Вверх
larinva
Дата 11.8.2010, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



неужели никому не понятно что мне нужно

Добавлено через 4 минуты и 48 секунд
если вот этот код добавить в кнопку на form1 то все замечательно добавляется в текущую panel
Код

        private void addCompButton_Click(object sender, EventArgs e)
        {
            WorkStat workst = new WorkStat("Comp" + workstat.Count.ToString(), 0, 0);
            workstat.Add(workst);
            mapPanel.Invalidate();
        }

нужно тоже самое только из form2 при нажатии на кнопку
PM MAIL   Вверх
Fortnox
Дата 11.8.2010, 16:33 (ссылка)  | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 373
Регистрация: 31.10.2008
Где: Ростов-на-Дону

Репутация: 14
Всего: 22



larinva, от чего наследуется класс WorkStat? Если от класса, представляющего собой элемент управления, то:
Код

public partial class Form2 : Form
    {
        private Form1 form1;

        public Form2(Form1 form1)
        {
            InitializeComponent();
            this.form1 = form1;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            for (int i = 0; i <= 4; i++)
            {
                WorkStat workst = new WorkStat(checkedListBox1.Items[i].ToString(), 0, 0);
                this.form1.panel.Controls.Add(workst); // и изменить доступ panel на Public в первой форме
            }
        }
    }

либо создать метод в первой форме на добавление элемента в панель:
форма раз:
Код

public void AddNewWorkStation(WorkStat ws)
        {
            this.panel.Controls.Add(ws);
        }

форма два:
Код

public partial class Form2 : Form
    {
        private Form1 form1;

        public Form2(Form1 form1)
        {
            InitializeComponent();
            this.form1 = form1;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            for (int i = 0; i <= 4; i++)
            {
                WorkStat workst = new WorkStat(checkedListBox1.Items[i].ToString(), 0, 0);
                this.form1.AddNewWorkStation(workst);
            }
        }
    }

KelTron уже кидал проект, в котором достаточно было изменить листбокс на панель.
Да и следовало бы описать, что за класс WorkStat и workst в твоем коде.

Это сообщение отредактировал(а) Fortnox - 11.8.2010, 16:34
PM MAIL   Вверх
larinva
Дата 11.8.2010, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Fortnox первый случай не прокатывает я уже пробовал вываливаются ошибки
1 Ошибка    3    Наиболее подходящий перегруженный метод для "System.Windows.Forms.Control.ControlCollection.Add(System.Windows.Forms.Control)" имеет несколько недопустимых аргументов    G:\NetworkMonitoring\NetworkMonitoring\WizardNetworkForm.cs    279    17    NetworkMonitoring

2, Ошибка    4    Аргумент "1": преобразование типа из "NetworkMonitoring.WorkStat" в "System.Windows.Forms.Control" невозможно    G:\NetworkMonitoring\NetworkMonitoring\WizardNetworkForm.cs    279    53    NetworkMonitoring

Вот сам класс WorkStat
Код

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;

namespace NetworkMonitoring
{
    class WorkStat
    {
        const int DEFAULT_WIDTH = 50;
        const int DEFAULT_HEIGHT = 46;

        Image computerImage = NetworkMonitoring.Properties.Resources.WorkStation;

        public WorkStat(string name, int x, int y)
        {
            this.Name = name;
            this.X = x;
            this.Y = y;
            this.Width = DEFAULT_WIDTH;
            this.Height = DEFAULT_HEIGHT;
        }

        #region Свойства

        public string Name {get; set;}
        public int X {get; set;}
        public int Y {get; set;}
        public int Width {get; set;}
        public int Height {get; set;}

        public Size Size
        {
            get {return new Size(Width, Height);}
        }

        public Point Location
        {
            get {return new Point (X, Y);}
        }

        #endregion 

        #region Открытые методы

        public void Draw(Graphics g)
        {
            g.DrawImage(computerImage, X, Y, Width, Height);
            g.DrawString(Name, SystemFonts.DefaultFont, 
                SystemBrushes.WindowText, new Point(X,Y + Height));
        }

        #endregion


    }
}


 

Это сообщение отредактировал(а) larinva - 11.8.2010, 16:43
PM MAIL   Вверх
Fortnox
Дата 11.8.2010, 16:49 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 373
Регистрация: 31.10.2008
Где: Ростов-на-Дону

Репутация: 14
Всего: 22



larinva, наследуйте класс WorkStat от Control, раз этот класс является визуальным, избавитесь от многих проблем.
Код

    public class WorkStat : Control
    {
        const int DEFAULT_WIDTH = 50;
        const int DEFAULT_HEIGHT = 46;

        Image computerImage = NetworkMonitoring.Properties.Resources.WorkStation;

        public WorkStat(string name, int x, int y)
        {
            this.Name = name;
            this.Location = new Point(x, y);
            this.Width = DEFAULT_WIDTH;
            this.Height = DEFAULT_HEIGHT;
        }

        protected override void OnPaint(PaintEventArgs e)
        {
            base.OnPaint(e);
            e.Graphics.DrawImage(computerImage, this.Location.X, this.Location.Y, Width, Height);
            e.Graphics.DrawString(Name, SystemFonts.DefaultFont,
                SystemBrushes.WindowText, new Point(this.Location.X, this.Location.Y + Height));
        }
    }


Это сообщение отредактировал(а) Fortnox - 11.8.2010, 16:58
PM MAIL   Вверх
VirusUZ
  Дата 11.8.2010, 16:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 161
Регистрация: 9.4.2010
Где: Узбекистан, Навои й обл.

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



Listview или UserControl
--------------------
Virus
PM MAIL   Вверх
larinva
Дата 11.8.2010, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Fortnoxпри таком способе выводит ошибку
Код

public void AddNewWorkStation(WorkStat ws)
        {
            this.panel.Controls.Add(ws);
        }


Ошибка    1    Несовместимость по доступности: доступность типа параметра "NetworkMonitoring.WorkStat" ниже доступности метода "NetworkMonitoring.MainForm.AddNewWorkStation(NetworkMonitoring.WorkStat)"    G:\NetworkMonitoring\NetworkMonitoring\MainForm.cs    24    21    NetworkMonitoring


Это сообщение отредактировал(а) larinva - 11.8.2010, 16:59
PM MAIL   Вверх
Fortnox
Дата 11.8.2010, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 373
Регистрация: 31.10.2008
Где: Ростов-на-Дону

Репутация: 14
Всего: 22



larinva, установите доступность public классу WorkStat:
Код

public class WorkStat : Control
{
// прочий код
}

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


Опытный
**


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

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



сделал доступность public классу WorkStat ошибка исчезла но и ничего не добавляется smile  (((
PM MAIL   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

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


 




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


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

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