Нужно прекрепить 1 форму к другой

здраствуйте. подскажите пожалуйста как сделать подобный дизайн:
Screenshot_181
тоесть к примеру чтобы какбы на прозрачном фоне с боку была панель которая появляется при нажатии на кнопку. проблема в том что я не знаю как это сделать и чтобы оно было прикреплено к основной форме (простите просто я не понимаю как такой тип дизайна объяснить поэтому прикрепил картинку с примером) панель должна быть 1 а не как на картинке.

У меня на вин10 сработал только этот вариант отсюда c# - Transparent background on winforms? - Stack Overflow, скорее всего зависит от версии винды.

        public Form1()
        {
            InitializeComponent(); 
 
            BackColor = Color.LimeGreen;
            TransparencyKey = Color.LimeGreen;
        } 

но тут зеленый контур
image

просто менять позицию формы в событии изменения позиции основной.

1 лайк

ок завтра проверю

вы меня немного не правильно поняли. мне нужно чтобы с боку умоей формы можно было при нажатий на кнопку чтобы visible панели котораясбоку как на картинке (тоесть мне надо чтобы панель появлялась за границами формы и не была сама по себе)

Ну это скорее всего просто другая форма, а не панель с основной формы.
Кнопки сверху и т.д. убираются Window.WindowStyle Property (System.Windows) | Microsoft Docs

1 лайк

да это оно

и как это выходит правильно сделать со всеми свойствами

так что

Так а что непонятно?

Ловить передвижения или ресайзы основной формы — Form.ResizeBegin Event (System.Windows.Forms) | Microsoft Docs
Менять позицию второй формы — Control.Location Property (System.Windows.Forms) | Microsoft Docs. Если всегда справа, то должно быть например Х_второй = Х_основной + width_основной, Y_второй = Y_основной.

можно пожалуйста скинуть проект с данным окном . прочитал в интернете и для winforms мало что нашел.

Так а что искали-то?

Чтобы прикрепить одну форму к другой форме надо просто в событии изменения позиции/размера формы менять позицию второй формы.

Screenshot_182
вот такая

так что там

Где там?))

И вы так и не ответили в чем именно проблема.

проблема в том что я не понимаю как это правильно релизовать

Дык может надо начать пробовать?)

  • сделать открытие второй формы
  • добавить обработчик события ResizeBegin
  • попробовать в нем менять позицию второй формы на нужную (ну и при открытии тоже, так что лучше создать функцию, которая задает позицию, и вызывать её везде)
  • и т.д.

просто сделайте проект в котором наглядно (простите знаю что много прошу)

Так сами себе и сделайте, зачем просить кого-то, когда несложно научиться делать самому :slight_smile:

яя не понимаю механику

я даже не знаю как это правильно назвать