powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Вставить UserControl в качестве дочернего элемента
12 сообщений из 12, страница 1 из 1
Вставить UserControl в качестве дочернего элемента
    #40015208
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
делаю так
Код: 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.
UserDataSet parms_set = null;

if (parms_set == null)
{
     new_instance = 1;
     parms_set = new UserDataSet(serial_port, DATA_SET_PARAMS);
     AddUserControlToPanel(parms_set);
     parms_set.BringToFront(); 
}
else
{
     parms_set.BringToFront();
}

private bool AddUserControlToPanel(UserDataSet uds)
{
    bool result;
    try
    {
         uds.Parent = SplitContainerMain.Panel2;
         uds.Dock = DockStyle.Fill;
         uds.Visible = true;
         SplitContainerMain.Panel2.Controls.Add(uds);
         result = true;
     }
     catch
     {
          result = false;
      }
    return result;
}



я останавливаюсь на брейпоинте и иду построчно - все проходит без ошибок. Но UserControl я не вижу. С обычной формой это прекрасно работало.

посмотрел в UserControl. в конструктор я попадаю
Код: c#
1.
2.
3.
4.
5.
6.
7.
public UserDataSet(SerialPort ser_port, int type)
{
    serial_port = ser_port;
    dataset_type = type;

    MessageBox.Show("Constructor");
}



а вот в ивент Load - нет
Код: c#
1.
2.
3.
4.
private void UseDataSet_Load(object sender, EventArgs e)
{
    MessageBox.Show("Load");
}
...
Рейтинг: 0 / 0
Вставить UserControl в качестве дочернего элемента
    #40015241
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
добавил метод Show(); всё равно контрол не появляется. и Load не вызывается.
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
private void AllLabels_Click(object sender, EventArgs e)
{
    if (parms_set == null)
    {
         new_instance = 1;
         parms_set = new UserDataSet(serial_port, DATA_SET_PARAMS);
         AddUserControlToPanel(parms_set);

         parms_set.Show();
         parms_set.BringToFront(); 
    }
    else
    {
         parms_set.BringToFront();
    }
}
...
Рейтинг: 0 / 0
Вставить UserControl в качестве дочернего элемента
    #40015489
Mixon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
jenya7,

самое простое задать для вставляемого компонента позицию и размеры, а может он у вас и вставляется но за рамками видимой зоны родительского компонента.
...
Рейтинг: 0 / 0
Вставить UserControl в качестве дочернего элемента
    #40015575
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>jenya7, вчера, 14:34 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1330550&msg=22226240][22226240]
>делаю так
<
так работает:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
. . .
ucNew=new uc_Хранилище();
. . .
ucNew.VerticalAlignment = VerticalAlignment.Bottom;
ucNew.HorizontalAlignment = HorizontalAlignment.Right;
ucNew.Margin = new Thickness(0, 0, 0, 0);
ucNew.Visibility = Visibility.Visible;
grd_Главная.Children.Add(ucNew);
ucNew = null;
. . .

grd_Главная определена здесь:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Window x:Class="ns_Решение.MainWindow"
   xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
   xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
   Title="Работа с базой данных Хранилища" Height="823" Width="1384" ResizeMode="CanMinimize" 
   WindowStartupLocation="CenterScreen" Loaded="Window_Loaded" Closing="MainWindow_Closing">

  <Grid Name="grd_Главная">
    <StatusBar DockPanel.Dock="Top" Height="25" VerticalAlignment="Top" Background="Coral">
      <StatusBarItem >
        <TextBlock Name="lbl_Статус" Foreground="Black"/>
      </StatusBarItem>
    </StatusBar>
    <Button Name="btc_Группы" HorizontalAlignment="Right" VerticalAlignment="Bottom" Content="Группы" 
   FontWeight="Bold" Click="btc_Группы_Click" Margin="0,0,10,178" Width="128" Height="25" />
. . . 
...
Рейтинг: 0 / 0
Вставить UserControl в качестве дочернего элемента
    #40015578
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев
>jenya7, вчера, 14:34 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1330550&msg=22226240][22226240]
>делаю так
<
так работает:

У топикстартера винформс, а не WPF.
...
Рейтинг: 0 / 0
Вставить UserControl в качестве дочернего элемента
    #40015581
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев, зачем пугаешь ТС XAML-ом? ))
...
Рейтинг: 0 / 0
Вставить UserControl в качестве дочернего элемента
    #40015662
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Сон Веры Павловны, сегодня, 15:16 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1330550&msg=22226935][22226935]
>У топикстартера винформс, а не WPF.
<
а если так:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
. . .
namespace ns_Хранилище {
  public class wf_Хранилище : Form {
    private UserControl ucNew;
    . . .
    ucNew=new uc_Хранилище();
    . . .
    this.Controls.Clear();  this.Controls.Add(ucNew); 
    ucNew.Visible = true; ucNew = null;
    . . .
...
Рейтинг: 0 / 0
Вставить UserControl в качестве дочернего элемента
    #40015672
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев

а если так:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
. . .
namespace ns_Хранилище {
  public class wf_Хранилище : Form {
    private UserControl ucNew;
    . . .
    ucNew=new uc_Хранилище();
    . . .
    this.Controls.Clear();  this.Controls.Add(ucNew); 
    ucNew.Visible = true; ucNew = null;
    . . .


Боже мой. Ну зачем ты делаешь ucNew приватным полем, если ты его почти сразу же после инициализации обнуляешь? Про переводы строк я уже даже и не говорю - у тебя ентер через раз работает?
...
Рейтинг: 0 / 0
Вставить UserControl в качестве дочернего элемента
    #40015767
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>fkthat, сегодня, 18:38 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1330550&msg=22227091][22227091]
>...Ну зачем ты делаешь...
< И что в этом плохого?

>...Про переводы строк...
< советую лучше помолчать.
Люблю когда код метода умещается на одном экране. С отладчиком проблем нет.
...
Рейтинг: 0 / 0
Вставить UserControl в качестве дочернего элемента
    #40015777
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
разобрался в чем проблема.
я переписываю конструктор
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
public UserDataSet()
{
    InitializeComponent();
}

public UserDataSet(SerialPort ser_port, int type)
{
    serial_port = ser_port;
    dataset_type = type;
}


а нужно вызывать один
Код: c#
1.
2.
3.
4.
5.
6.
7.
public UserDataSet(SerialPort ser_port, int type)
{
    InitializeComponent();

    serial_port = ser_port;
    dataset_type = type;
}
...
Рейтинг: 0 / 0
Вставить UserControl в качестве дочернего элемента
    #40015798
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
public UserDataSet()
{
    InitializeComponent();
}

public UserDataSet(SerialPort ser_port, int type) : this()
{
    serial_port = ser_port;
    dataset_type = type;
}
...
Рейтинг: 0 / 0
Вставить UserControl в качестве дочернего элемента
    #40015824
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев
>fkthat, сегодня, 18:38 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1330550&msg=22227091][22227091]
>...Ну зачем ты делаешь...
< И что в этом плохого?

>...Про переводы строк...
< советую лучше помолчать.
Люблю когда код метода умещается на одном экране. С отладчиком проблем нет.

авторОй, всё.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Вставить UserControl в качестве дочернего элемента
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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