Премещение кнопки при наведении мыши на кнопку

296
15 сентября 2017, 18:26

Как можно при наведении мыши на кнопку перемещать ее (так же, только еще в обратную сторону нужно)? Этот код криво справляется. Т.к. при небольшом перемещении (например на 20 по Y) он обрезает половину кнопки, а если больше (например, 120 по Y) кнопка вообще исчезает из виду. В идеале, кнопка должна быть картинкой получаемой с сервера при наведении мышки на которую, должна плавно выезжать Panel в которой будет несколько текстов (ссылки). Я думаю если подставить под кнопку Panel и сделать к ней событие ухода мышки то будет вполне отлично, т.к. панель будет появлятся при наведении мышки на кнопку

        private void button1_MouseEnter(object sender, EventArgs e)
    {
        button1.Location = new Point(button1.Location.X, button1.Location.Y - 150);
    }
    private void button1_MouseLeave(object sender, EventArgs e)
    {
        button1.Location = new Point(button1.Location.X, button1.Location.Y + 150);
    }

Код формы:

namespace -------
{
partial class MainScreen
{
    /// <summary>
    /// Required designer variable.
    /// </summary>
    private System.ComponentModel.IContainer components = null;
    /// <summary>
    /// Clean up any resources being used.
    /// </summary>
    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
    protected override void Dispose(bool disposing)
    {
        if (disposing && (components != null))
        {
            components.Dispose();
        }
        base.Dispose(disposing);
    }
    #region Windows Form Designer generated code
    /// <summary>
    /// Required method for Designer support - do not modify
    /// the contents of this method with the code editor.
    /// </summary>
    private void InitializeComponent()
    {
        System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainScreen));
        this.label1 = new System.Windows.Forms.Label();
        this.label2 = new System.Windows.Forms.Label();
        this.button1 = new System.Windows.Forms.Button();
        this.SuspendLayout();
        // 
        // label1
        // 
        this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
        | System.Windows.Forms.AnchorStyles.Left)));
        this.label1.AutoSize = true;
        this.label1.Location = new System.Drawing.Point(10, 51);
        this.label1.Name = "label1";
        this.label1.Size = new System.Drawing.Size(38, 13);
        this.label1.TabIndex = 0;
        this.label1.Text = "Логин";
        // 
        // label2
        // 
        this.label2.AutoSize = true;
        this.label2.Location = new System.Drawing.Point(37, 73);
        this.label2.Name = "label2";
        this.label2.Size = new System.Drawing.Size(42, 13);
        this.label2.TabIndex = 1;
        this.label2.Text = "Группа";
        // 
        // button1
        // 
        this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
        this.button1.Location = new System.Drawing.Point(12, 777);
        this.button1.Name = "button1";
        this.button1.Size = new System.Drawing.Size(100, 100);
        this.button1.TabIndex = 2;
        this.button1.Text = "test";
        this.button1.UseVisualStyleBackColor = true;
        this.button1.MouseEnter += new System.EventHandler(this.button1_MouseEnter);
        this.button1.MouseLeave += new System.EventHandler(this.button1_MouseLeave);
        // 
        // MainScreen
        // 
        this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
        this.ClientSize = new System.Drawing.Size(1264, 889);
        this.Controls.Add(this.button1);
        this.Controls.Add(this.label2);
        this.Controls.Add(this.label1);
        this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
        this.MinimumSize = new System.Drawing.Size(1024, 576);
        this.Name = "MainScreen";
        this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
        this.Text = "Test";
        this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
        this.Load += new System.EventHandler(this.LoadUserData_Load);
        this.ResumeLayout(false);
        this.PerformLayout();
    }
    #endregion
    private System.Windows.Forms.Label label1;
    private System.Windows.Forms.Label label2;
    private System.Windows.Forms.Button button1;
}
}
Answer 1

Установите значение свойства Anchor равным None.

READ ALSO
Привязка button к Int

Привязка button к Int

У меня есть две кнопки в DataTemplateНужно привязать их к свойству типа int так, что бы по нажатию одной кнопки переменная увеличивалась, по другой...

327
Можно/нужно ли делать сервисы бизнес логики одиночками (Singleton) или статическими?

Можно/нужно ли делать сервисы бизнес логики одиночками (Singleton) или статическими?

Например у меня есть сервисы ScannerService и UsersServiceПервый отвечает за управление сканером на устройстве, второй получает данные из базы данных...

268
Проблема с методом Insert

Проблема с методом Insert

Есть метод, который вставляет пробелы перед прописными буквамиЕсть ошибка: в 1 вызове метода пробел ставится только 1 раз, даже если там есть...

152
Ошибка во время первой отправки почты C#

Ошибка во время первой отправки почты C#

На сервере крутится служба, которая согласно определенных событий отправляет почтуСтолкнулся со следующей ошибкой:

180