Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
SVD102
0 / 0 / 1
Регистрация: 12.10.2015
Сообщений: 207
1

Как сместить кнопку и чтоб при развертывании на все окно формы она тоже смещалась

13.01.2016, 13:06. Просмотров 588. Ответов 10
Метки нет (Все метки)

Вот у меня есть код, я хочу чтоб при нажатии на кнопку она смещалась на другое место, и при развертывании формы на весь экран не могу сделать чтоб она автоматически с формой развернулась. То есть не работает Anchor, что прописываю его что нет в обработчике все равно не работает. Что делать?



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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
private void Form1_Load(object sender, EventArgs e)
    {
        buttonHide.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
        zedGraph.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Top)));
        this.WindowState = FormWindowState.Maximized;
 
    }
 
    int vkl = 0;
    private void button1_Click(object sender, EventArgs e)
    {
 
        vkl++;
        if (vkl % 2 == 0)
        {
            buttonHide.Text = "Cкрыть";
            buttonHide.Location = new System.Drawing.Point(877, 510);
            //buttonHide.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
            tabControl1.Visible = true;
            labelTimeStart.Visible = true;
            textBoxTimeStart.Visible = true;
            labelTimeFinish.Visible = true;
            textBoxTimeFinish.Visible = true;
            //labelBackGround.Location = new System.Drawing.Point(12, 510);
            //zedGraph.Size = new System.Drawing.Size(940, 466);
        }
        else
        {
            buttonHide.Text = "Показать";
 
            //labelOfAxis1[0].Location = new System.Drawing.Point(this.labelBackGround.Location.X + 3, this.labelBackGround.Location.Y + 2);
            for (int j = 1; j < countOfAxis; j++)
            {
                //labelOfAxis1[j].Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
                //labelOfAxis1[j].Location = new System.Drawing.Point(877, 718);
            }
            buttonHide.Location = new System.Drawing.Point(877, 718);
            //buttonHide.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
            //zedGraph.Size = new System.Drawing.Size(940, 680);
            //zedGraph.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
            //| System.Windows.Forms.AnchorStyles.Left)
            //| System.Windows.Forms.AnchorStyles.Right)));
            tabControl1.Visible = false;
            labelTimeStart.Visible = false;
            textBoxTimeStart.Visible = false;
            labelTimeFinish.Visible = false;
            textBoxTimeFinish.Visible = false;
            //labelBackGround.Location = new System.Drawing.Point(12, 718);
 
        }
    }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.01.2016, 13:06
Ответы с готовыми решениями:

Как сделать вторую кнопку чтоб она тоже могла работать с массивом?
Как сделать 2 кнопку чтоб она тоже могла работать с массивом botton 2,и вторая...

Как можно выполнить действия при развертывании формы?
При развертывании формы нужно сделать определенные действия. Как?

Сделать кнопку чтоб она завершала работу Form1
народ я начинающий программист помогите . Как сделать кнопку чтоб она завершала...

Как сместить кнопку и label
Нужно чтобы при нажатии на кнопку &quot;Скрыть&quot; сама эта кнопка и label меняли...

ToolStrip MDI-формы съезжает вниз при развертывании дочернего окна на весь экран
Доброго дня! Программно добавляю ToolStrip в родительскую форму MDI. А при...

10
kontuPauk
301 / 299 / 125
Регистрация: 29.01.2013
Сообщений: 638
Записей в блоге: 1
Завершенные тесты: 1
13.01.2016, 14:31 2
А у Вас кнопка не находится на какой-нибудь панели или другом контроле, к которому и привязывается якорями?
0
SVD102
0 / 0 / 1
Регистрация: 12.10.2015
Сообщений: 207
13.01.2016, 15:20  [ТС] 3
Вот посмотрите в архиве
0
Вложения
Тип файла: rar Form1.Designer.rar (3.5 Кб, 4 просмотров)
kontuPauk
301 / 299 / 125
Регистрация: 29.01.2013
Сообщений: 638
Записей в блоге: 1
Завершенные тесты: 1
13.01.2016, 15:25 4
Вроде на форме. А зачем Вы ей новые позиции задаете, если пытаетесь якорями все решить?
0
Spectral-Owl
576 / 554 / 155
Регистрация: 29.06.2010
Сообщений: 1,588
Завершенные тесты: 1
13.01.2016, 16:41 5
руки бы вам отбить за этот дизайнер формы, что вы скинули отдельно от неё... чем потяжелее.

проблему ищите в файле form1.cs, т.к. когда там нет ничего кроме
C#
1
2
3
4
5
6
7
8
9
10
11
12
using System.Windows.Forms;
 
namespace WinTest
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
    }
}
все контролы изменяют своё положение в зависимости от ширины/высоты формы.
0
SVD102
0 / 0 / 1
Регистрация: 12.10.2015
Сообщений: 207
14.01.2016, 06:36  [ТС] 6
При нажатии на кнопку "Cкрыть" у меня должна она смещаться вниз так как пропадает панель вкладок и то что рисует zedgraph тоже должен растянуться на всю форму(по высоте). Вот зачем я задаю новые координаты.


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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
private void Form1_Load(object sender, EventArgs e)
        {
            buttonHide.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
            zedGraph.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Top)));
            this.WindowState = FormWindowState.Maximized;
 
        }
        
        int vkl = 0;
        private void button1_Click(object sender, EventArgs e)
        {
            
            vkl++;
            if (vkl % 2 == 0)
            {
                buttonHide.Text = "Cкрыть";
                //buttonHide.Location = new System.Drawing.Point(877, 510);
                //buttonHide.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
                tabControl1.Visible = true;
                labelTimeStart.Visible = true;
                textBoxTimeStart.Visible = true;
                labelTimeFinish.Visible = true;
                textBoxTimeFinish.Visible = true;
                //labelBackGround.Location = new System.Drawing.Point(12, 510);
                //zedGraph.Size = new System.Drawing.Size(940, 466);
            }
            else
            {
                buttonHide.Text = "Показать";
                
                //labelOfAxis1[0].Location = new System.Drawing.Point(this.labelBackGround.Location.X + 3, this.labelBackGround.Location.Y + 2);
                for (int j = 1; j < countOfAxis; j++)
                {
                    //labelOfAxis1[j].Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
                    //labelOfAxis1[j].Location = new System.Drawing.Point(877, 718);
                }
                //buttonHide.Location = new System.Drawing.Point(877, 718);
                //buttonHide.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
                //zedGraph.Size = new System.Drawing.Size(940, 680);
                //zedGraph.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
                //| System.Windows.Forms.AnchorStyles.Left)
                //| System.Windows.Forms.AnchorStyles.Right)));
                tabControl1.Visible = false;
                labelTimeStart.Visible = false;
                textBoxTimeStart.Visible = false;
                labelTimeFinish.Visible = false;
                textBoxTimeFinish.Visible = false;
                //labelBackGround.Location = new System.Drawing.Point(12, 718);
 
            }
        }
0
SVD102
0 / 0 / 1
Регистрация: 12.10.2015
Сообщений: 207
14.01.2016, 06:57  [ТС] 7
Надо чтоб было таак
0
Миниатюры
Как сместить кнопку и чтоб при развертывании на все окно формы она тоже смещалась   Как сместить кнопку и чтоб при развертывании на все окно формы она тоже смещалась  
Spectral-Owl
576 / 554 / 155
Регистрация: 29.06.2010
Сообщений: 1,588
Завершенные тесты: 1
14.01.2016, 08:24 8
кидаешь на форму 3 панельки:

panelBottom (сюда добавляешь свой tabControl, именно эта панель будет скрываться) свойство dock = bottom;
panelMid (сюда добавляешь свою безумную кнопку и labelBackGround) свойство dock = bottom;
panelTop (сюда добавляешь свой zedGraph) свойство dock = fill;

если изменишь последовательность добавления - всё пойдёт крахом.
в обработчике клика достаточно прописать:
C#
1
panelBottom.Visible = !panelBottom.Visible;
0
SVD102
0 / 0 / 1
Регистрация: 12.10.2015
Сообщений: 207
14.01.2016, 08:52  [ТС] 9
this.panel1.Controls.Add(this.tabControl1); Не добавляется на панель tabControl1, пустая остается.
0
IngProj
673 / 45 / 16
Регистрация: 23.10.2015
Сообщений: 93
14.01.2016, 09:10 10
Самый простой вариант это зайти в свойства кнопки и найти там свойство Anchor. С помощью этого свойства можно закрепить края кнопки на небходимом расстоянии от краев формы

Добавлено через 2 минуты
Также можно по событию развертывания формы находить размер формы и уже относительно этих размеров задавать координаты расположения кнопки.
0
Spectral-Owl
576 / 554 / 155
Регистрация: 29.06.2010
Сообщений: 1,588
Завершенные тесты: 1
14.01.2016, 10:05 11
IngProj, в том то и дело, что ТС вместо адекватного заголовка написал непонятно что. Ему необходимо положение кнопки не относительно формы, а относительно её нижнего эллемента, и только если его нет - то относительно формы.

SVD102, а ручками добавить не? просто выкинув контрол на форму, и потом уже перетащив в нужное положение дочерние контролы.
Хотя кодом делать правильнее, да. Просто не нужно забывать что у вашего tabControl1 значение Top очень близко к общей высоте вашей формы. Винформс так организована, что не контейнер знает, в каком положении у него контент, а контент говорит, что, мол, хочет находиться на 300 пунктов ниже верхнего края контейнера.
0
14.01.2016, 10:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.01.2016, 10:05

Как сделать так, чтобы при развертывании формы на весь экран картинка в форме тоже развертывалась автоматически?
Как сделать так, чтобы при развертывании формы на весь экран картинка в форме...

Как сделать, чтобы при нажатии на кнопку она переместилась в любое место формы!
Как сделать, чтобы при нажатии на кнопку она переместилась в любое место...

как сделать кнопку чтоб она добавляла запись в бд Access
как сделать кнопку чтоб она добавляла запись в бд Access


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru