Как добавить кнопку в заголовок окна - Visual Basic .NET

  1. Можно ли как нибудь добавить свою кнопку в заголовок ока?


textual

Код:

Public Class Form1
 
    Protected Overloads Overrides ReadOnly Property CreateParams() As CreateParams
        Get
            Dim cp As CreateParams = MyBase.CreateParams
            cp.Style = cp.Style And Not &HC00000
            Return cp
        End Get
    End Property
 
    Private m_WindowState As FormWindowState = FormWindowState.Normal
    Private m_FormSizeAndLocation As Rectangle = Rectangle.Empty
 
    Private Sub ChangeWindowState(p_NewState As FormWindowState)
        Me.WindowState = FormWindowState.Normal
        Select Case p_NewState
            Case FormWindowState.Maximized
                If m_WindowState = FormWindowState.Normal Then
                    m_FormSizeAndLocation.Location = Me.Location
                    m_FormSizeAndLocation.Size = Me.Size
                End If
                Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None
                Me.Size = SystemInformation.WorkingArea.Size
                Me.Location = SystemInformation.WorkingArea.Location
                Exit Select
            Case FormWindowState.Minimized
                Me.WindowState = FormWindowState.Minimized
                Exit Select
            Case FormWindowState.Normal
                Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Sizable
                Me.Location = m_FormSizeAndLocation.Location
                Me.Size = m_FormSizeAndLocation.Size
                Exit Select
        End Select
        m_WindowState = p_NewState
    End Sub
 
    Private Sub ButtonMinimize_Click_1(sender As Object, e As EventArgs) Handles ButtonMinimize.Click
        ChangeWindowState(FormWindowState.Minimized)
    End Sub
 
    Private Sub ButtonMaximize_Click_1(sender As Object, e As EventArgs) Handles ButtonMaximize.Click
        If m_WindowState = FormWindowState.Maximized Then
            ChangeWindowState(FormWindowState.Normal)
            ButtonMaximize.Text = "Max"
        Else
            ChangeWindowState(FormWindowState.Maximized)
            ButtonMaximize.Text = "Res"
        End If
    End Sub
 
    Private Sub ButtonClose_Click(sender As Object, e As EventArgs)
        Close()
    End Sub
 
    Public Sub New()
        InitializeComponent()
        AddHandler panel1.MouseDown, AddressOf panel1_MouseDown
        AddHandler panel1.MouseMove, AddressOf panel1_MouseMove
        AddHandler panel1.MouseUp, AddressOf panel1_MouseUp
        AddHandler panel1.MouseDoubleClick, AddressOf panel1_MouseDoubleClick
 
    End Sub
    Private m_MousePressed As Boolean = False
    Private m_oldX As Integer, m_oldY As Integer
    Sub panel1_MouseDown(sender As Object, e As MouseEventArgs)
        Dim TS As Point = Me.PointToScreen(e.Location)
        m_oldX = TS.X
        m_oldY = TS.Y
        m_MousePressed = True
    End Sub
    Sub panel1_MouseUp(sender As Object, e As MouseEventArgs)
        m_MousePressed = False
    End Sub
    Sub panel1_MouseMove(sender As Object, e As MouseEventArgs)
        If m_MousePressed = True AndAlso m_WindowState <> FormWindowState.Maximized Then
            Dim TS As Point = Me.PointToScreen(e.Location)
            Me.Location = New Point(Me.Location.X + (TS.X - m_oldX), Me.Location.Y + (TS.Y - m_oldY))
            m_oldX = TS.X
            m_oldY = TS.Y
        End If
    End Sub
    Sub panel1_MouseDoubleClick(sender As Object, e As MouseEventArgs)
        ButtonMaximize_Click_1(ButtonMaximize, New EventArgs())
    End Sub
 
    Private Sub ButtonClose_Click_1(sender As Object, e As EventArgs) Handles ButtonClose.Click
        Close()
    End Sub
 
End Class


Похожие ответы
  1. Всех приветствую! Помогите разобраться, не могу понять как это работает. Есть вот такая DataTable. Она уже сформирована. Необходимо идти по ней циклом и в желтые ячейки добавлять строку. Зеленые не трогаем, там уже есть данные. Попробовал что-то типа этого, чтобы заполнить третий столбец,vb.net1 2 3 4 5         For i = 0 To _result.DataTablePosts.Rows.Count - 1             Dim drow As DataRow = _result.DataTablePosts.NewRow()             drow.ItemArray = {"100500"}             _result.DataTablePosts.Rows.InsertAt(drow, 2)         NextВсё отработало, ошибок не появилось, но и данные неизвестно куда вставились или улетучились

  1. Как отследить кнопку через Xpath в браузере (WebBrowser - расположен на форме) и нажать на нее через кнопку на форме? P.S. У кнопки нет id

  1. Добрый день. Есть дерево TreeView c чекбоксами. Есть вспомогательный CheckedListBox Необходимо при включении/отключении первого чекбокса в листе - включить/отключить только узловые элементы дерева TreeView При вкл/откл второго чекбокса в листе - вкл/откл только дочерние элементы первого уровня (Без включения корневой ветки) При активизации третьего чекбокса - дочерние элементы второго уровня и т.д. Получилось только выделение узловых элементов. vb.net1 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     Private Sub CheckedListBox1_ItemCheck(sender As Object, e As ItemCheckEventArgs) Handles CheckedListBox1.ItemCheck         Select Case e.NewValue             Case CheckState.Checked                 If e.Index = 0 Then                     For Each trview In TreeView1.Nodes                         trview.Checked = True                     Next                 End If '---------------- В данном месте программы должны включаться дочерние элементы -----------------                   If e.Index = 1 Then                     For Each trview In TreeView1.Nodes 'Данная строчка кода не правильная, не могу понять, как достучаться до дочерних элементов                         node.Expand()                         node.Checked = True                     Next                 End If '------------------------------------------------------------------------------------------------------------------                           Case CheckState.Unchecked                             If e.Index = 0 Then                     For Each trview In TreeView1.Nodes                         trview.Checked = False                     Next                 End If '---------------- В данном месте программы должны выключаться дочерние элементы -----------------                 If e.Index = 1 Then                     For Each trview In TreeView1.Nodes 'Данная строчка кода не правильная, не могу понять, как достучаться до дочерних элементов                         trview.Checked = False                     Next                 End If '------------------------------------------------------------------------------------------------------------------           End Select       End SubДерево заполняется динамически. Спасибо

  1. Всем здравствуйте. Например, Columns(0) с именем BDate (дата) содержит Дату (это вводит пользователь). Columns(1) с именем Month (число) должен на основании содержимого столбца BDate заполняться номером соответствующего этой дате месяца (DatePart...). Заполнение столбца Month должно происходить автоматически, сразу после ввода пользователем значения даты в столбце BDate.

  1. Здравствуйте, форумчане! У меня есть ListView и данные которые вносятся в него. В загрузке формы, читается файл с данными для ListView. Как сделать так чтобы читалось? Кликните здесь для просмотра всего текста Код для записи предметов в файл из нескольких ListView.vb.net1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21    Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click         On Error Resume Next         If Directory.Exists(Application.StartupPath & "\SystemConfig") = False Then IO.Directory.CreateDirectory(Application.StartupPath & "\SystemConfig")         Dim Str As String = ""         For Each Element_Items In ListView1.Items             Str &= Element_Items.Text & vbNewLine         Next         File.WriteAllText(Application.StartupPath & "\SystemConfig\system32.txt", Str)         TextBox1.Text = ""         For Each Element_Items In ListView2.Items             Str &= Element_Items.Text & vbNewLine         Next         File.WriteAllText(Application.StartupPath & "\SystemConfig\fs32.txt", Str)         TextBox2.Text = ""           For Each Element_Items In ListView3.Items             Str &= Element_Items.Text & vbNewLine         Next         File.WriteAllText(Application.StartupPath & "\SystemConfig\fstest32.txt", Str)         TextBox3.Text = ""     End Sub Заранее спасибо!

  1. Есть кнопки HTML, как нажать первую кнопку "Запуск"HTML51 2 3 4

  1. Стоит задача, нажать кнопку WebControl1 в браузере Awesomium:HTML51 2 3 4

    Добавлено через 3 часа 20 минут Вот код такой, что не хватает в нём?vb.net1 2 3         '   Программно нажать кнопку в Awesomium (WebControl1)         Dim document = CType(WebControl1.ExecuteJavascriptWithResult("document"), Awesomium.Core.JSObject)         WebControl1.ExecuteJavascriptWithResult("document.getElementsByClassName('men')[0].onclick()")Добавлено через 3 часа 43 минуты ИЛИ как 2 вариант:vb.net1 2         Dim shareBtn As JSObject = WebControl1.ExecuteJavascriptWithResult("document.getElementById('textcheck')")         shareBtn.Invoke("onclick")Какие есть мнения?Добавлено через 18 часов 3 минуты Второй день "бьюсь" над нажатием кнопки, помогите любыми советами...

  1. Приветствую! Вроде вопрос простой и каждый из вас сталкивается с этим каждый день, но вот как такое сделать самому, почему-то так сходу и не нашел. Вот к примеру есть моя функция:vb.net1 2 3 Private Function Pifagor(Byval A As integer, B As Integer) As Integer Return ... End FunctionТак вот как сделать так, чтобы когда обращаешься к этой функции, при указании аргументов всплывала подсказка что: А - катет 1 as Integer.. Ну, суть Вы поняли)) Спасибо!)Добавлено через 8 минут Кстати, существуют ведь описания не только для аргументов, но и для самой функции или процедуры. Как это можно реализовать?

  1. Всем здравствуйте. Устанавливаю: FormBorderStyle = Fixed Single MaximizeBox = False MinimizeBox = True В этом случае MaximizeBox делается недоступным, но совсем не удаляется. Можно ли сделать так, чтобы FormBorderStyle остался Fixed Single, а слева от "крестика" находился только один значок MinimizeBox. Если установить и MaximizeBox = False и MinimizeBox = False, то "крестик" остаётся в одиночестве, а хотелось бы иметь возможность (стандартную) сворачивать окно на панель задач и разворачивать его в исходные размеры.

  1. Понимаю что вопросу уже миллион лет, но вот конкретный пример, хочу войти на сайт Cyberforum.Ru, ввести свои данные и кликнуть по кнопке "Вход"... Но у нее здесь нет ни имени ни события "Click"... Как ее найти и кликнуть по ней? Хочу простецким способом сделать:vb.net1 2 3             WebBrowser1.Document.All.GetElementsByName("vb_login_username")(0).SetAttribute("Value", "????????")             WebBrowser1.Document.All.GetElementsByName("vb_login_password")(0).SetAttribute("Value", "???????")             WebBrowser1.Document.All.GetElementsByName("как тут найти эту кнопку")(0).InvokeMember("click")