Как отключить кнопку свертывания окна в C#?

Вы можете использовать один командлет PowerShell:

Get-ChildItem *.mkv | Rename-Item -NewName { 

Вы можете использовать один командлет PowerShell:

[110].name -Replace '.*?(\d{3}.*?)\[.*?\.','$1.'}
6
задан Filip Frącz 25 November 2008 в 22:46
поделиться

7 ответов

Я прочитал Ваш комментарий в отношении своего ответа и смог пытаться получить больше полного решения для Вас. Я выполнил это быстро, и это, казалось, имело поведение, которое Вы хотели. Вместо того, чтобы получить Ваши winforms из Формы, произойдите из этого класса:


using System;
using System.Windows.Forms;
using System.ComponentModel;

namespace NoMinimizeTest
{
    public class MinimizeControlForm : Form
    {
        private const int WM_SYSCOMMAND = 0x0112;
        private const int SC_MINIMIZE = 0xf020;

        protected MinimizeControlForm()
        {
            AllowMinimize = true;
        }

        protected override void WndProc(ref Message m)
        {
            if (!AllowMinimize)
            {
                if (m.Msg == WM_SYSCOMMAND)
                {
                    if (m.WParam.ToInt32() == SC_MINIMIZE)
                    {
                        m.Result = IntPtr.Zero;
                        return;
                    }
                }
            }
            base.WndProc(ref m);
        }

        [Browsable(true)]
        [Category("Behavior")]
        [Description("Specifies whether to allow the window to minimize when the minimize button and command are enabled.")]
        [DefaultValue(true)]
        public bool AllowMinimize
        {
            get;
            set;
        }
    }
}

Вы могли сделать немного больше, если бы Вы хотели смочь решить, позволить ли минимизировать в то время, когда щелчок отправляется, например:


using System;
using System.Windows.Forms;
using System.ComponentModel;

namespace NoMinimizeTest
{
    public class MinimizeControlForm : Form
    {
        private const int WM_SYSCOMMAND = 0x0112;
        private const int SC_MINIMIZE = 0xf020;

        protected MinimizeControlForm()
        {

        }

        protected override void WndProc(ref Message m)
        {
            if (m.Msg == WM_SYSCOMMAND)
            {
                if (m.WParam.ToInt32() == SC_MINIMIZE && !CheckMinimizingAllowed())
                {
                    m.Result = IntPtr.Zero;
                    return;
                }
            }
            base.WndProc(ref m);
        }

        private bool CheckMinimizingAllowed()
        {
            CancelEventArgs args = new CancelEventArgs(false);
            OnMinimizing(args);
            return !args.Cancel;
        }

        [Browsable(true)]
        [Category("Behavior")]
        [Description("Allows a listener to prevent a window from being minimized.")]
        public event CancelEventHandler Minimizing;

        protected virtual void OnMinimizing(CancelEventArgs e)
        {
            if (Minimizing != null)
                Minimizing(this, e);
        }
    }
}

Для получения дополнительной информации об этом уведомлении об окне, см. статью MSDN об этом.

11
ответ дан 8 December 2019 в 05:24
поделиться

Поместите этот код в событие Resize своей формы:

if (this.WindowState == FormWindowState.Minimized)
{
    this.WindowState = FormWindowState.Normal;
}

Это сделает Вашу форму un-minimizable (ПРАВОВАЯ ОГОВОРКА: Я не рекомендую изменять стандартное поведение окон таким образом).

1
ответ дан 8 December 2019 в 05:24
поделиться

Просто сделайте MinimizeBox = ложь; в коде Вашей формы.

1
ответ дан 8 December 2019 в 05:24
поделиться

Не делать. Не смешивайте с моими окнами. Они являются моими, не Вашими. Это - мой компьютер и если я хочу минимизировать, я должен смочь. Я не могу думать и никогда не давался, серьезное основание для того, чтобы сделать это.

0
ответ дан 8 December 2019 в 05:24
поделиться
form.MinimizeBox = false;

или если в объеме формы

MinimizeBox = false;
10
ответ дан 8 December 2019 в 05:24
поделиться

Можно также реализовать дескриптор к событию Minimize для отмены команды

0
ответ дан 8 December 2019 в 05:24
поделиться

Ответ Coincoin корректен. MinimizeBox также доступен как свойство в окне свойств разработчика.

@Kevin: В то время как я ценю чувство, это - не всегда действительный ответ. Если отображения приложения модальное диалоговое окно путем создания нового экземпляра Формы и затем вызова.ShowDialog () на нем, Вы не хотите, чтобы пользователь минимизировал ту Форму, потому что затем весь вход на основном потоке UI заблокирован, пока модальное состояние той Формы не удовлетворено. Пользователь мог потенциально нажать на основную форму и просто получить "звон звона звона" безразличный звук из Windows и не знать, что сделать.

0
ответ дан 8 December 2019 в 05:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: