Рейтинг@Mail.ru
Полезные советы

Полезные советы (54)

Короткие практические полезные советы из области ИТ.

Если после подключения M.2 SSD диска пропал основной диск

Print Friendly, PDF & Email

Допустим, у вас в компьютере установлен диск (HDD или SSD – неважно), подключённый по интерфейсу SATA. Вы решили докупить новый SSD диск с интерфейсом M.2 и поставить его дополнительно к первому. Вы вставляете новый M.2 диск в компьютер, а старый диск при этом перестаёт определяться как в операционной системе, так и в BIOS. Из-за чего такое бывает и что при этом делать?

Дело в том, что ваш M.2 диск, скорее всего, также работает по протоколу SATA , и для его работы необходимо как минимум два SATA порта. Диск M.2 «отбирает» себе ресурсы и отключает как минимум два SATA порта у вашей материнской платы, которые до этого использовались первым диском. Поэтому исходный диск больше не может работать.

Диски M.2 SSD различаются расположением и количеством ключевых вырезов
Диски M.2 SSD различаются расположением и количеством ключевых вырезов

Чтобы решить эту проблему, просто переключите ваш первый диск на другой ряд SATA разъёмов (конечно, если у вас стационарный ПК). Тогда ресурсы SATA шины распределятся между дисками без конфликтов, и ваш первый диск снова станет видеться в системе и восстановит нормальную работоспособность.

Print Friendly, PDF & Email

Передача события прокрутки мыши родительскому элементу в WPF на примере элемента TreeView

Print Friendly, PDF & Email

Для передачи события прокрутки колеса мыши родительскому элементу, сначала определим в XAML событие PreviewMouseWheel.

<TreeView PreviewMouseWheel="ScrollingToParent" />

Теперь напишем обрабатывающий это событие метод таким способом:

''' <summary>
''' Обеспечивает передачу события прокрутки колеса мыши родительскому элементу.
''' </summary>
Private Sub ScrollingToParent(sender As Object, e As MouseWheelEventArgs)
    e.Handled = True
    Dim e2 As New MouseWheelEventArgs(e.MouseDevice, e.Timestamp, e.Delta) With {
        .RoutedEvent = UIElement.MouseWheelEvent,
        .Source = sender
    }
    Dim parent As UIElement = CType(CType(sender, Control).Parent, UIElement)
    parent.RaiseEvent(e2)
End Sub
Print Friendly, PDF & Email

Переопределение явного приведения типов в VB.NET

Print Friendly, PDF & Email

Среда .NET позволяет переопределять стандартные операторы. В частности, оператор CType(). Однако большинство примеров даются на языке C#. Чтобы переопределить оператор CType() в языке VB.NET, нужно поступить следующим образом:

Public Shared Widening Operator CType(m As MyClass) As String
	Return $"Это тип {m.GetType()} приведён к типу System.String."
End Operator

Здесь ключевое слово widening является указанием на то, что данное преобразование типов является расширяющим преобразованием (в отличие от narrowing – сужающего). Это значит, что при выполнении данного преобразования мы не потеряем данные, и оно может быть выполнено безопасно.

Замечу, что нельзя приводить тип к своему базовому классу, и наоборот: базовый – к дочернему.

Print Friendly, PDF & Email

Использование нескольких Disposable объектов внутри одной инструкции Using

Print Friendly, PDF & Email

Удобно использовать несколько конструкторов объектов, реализующих интерфейс IDisposable, внутри одной инструкции Using. Поясню на примере:

Using fs As New FileStream("file.txt", FileMode.Open)
    Using sr As New StreamReader(fs, Text.Encoding.GetEncoding(1251))
	'читаем содержимое файла и что-то делаем с ним…
    End Using
End Using

можно заменить на:

Using fs As New FileStream("file.txt", FileMode.Open), sr As New StreamReader(fs, Text.Encoding.GetEncoding(1251))
    'читаем содержимое файла и что-то делаем с ним…
End Using
Print Friendly, PDF & Email

Анонимные типы в VB.NET

Print Friendly, PDF & Email
Анонимные типы – это объекты, которые определяются локально в зоне видимости метода или класса и не имеют специального класса, в котором они описаны. Такие типы полезны когда нужно быстро создать какую-то структурированную сущность для хранения временных данных.
Print Friendly, PDF & Email

Создание методов расширения на VB.NET

Print Friendly, PDF & Email

Методы расширения – это методы, которые не относятся непосредственно к классу, но добавляют ему специфическую функциональность. Такая возможность может пригодиться, если, например, нет исходного кода для некоего класса, но нужно дополнить его функциональность. Или в случае, когда вы не хотите нарушить работу существующего кода, но при этом вам нужно некое дополнительное поведение.

Print Friendly, PDF & Email

Как вернуть поддержку диаграмм классов в Visual Studio 2017

Print Friendly, PDF & Email

В среде разработки Visual Studio версий, предшествовавших версии 2017, имелся инструмент для создания диаграмм классов на языке моделирования DSL (не путать с UML). В версии Visual Studio 2017 эти диаграммы могут не открываться. Чтобы восстановить поддержку старого дизайнера классов, можно попробовать сделать следующее.

Print Friendly, PDF & Email

Как получить название дня недели по его номеру в .NET

Print Friendly, PDF & Email

В .NET имеется очень полезный класс, который позволяет вывести локализованное название дня недели по его порядковому номеру. Этот класс называется DateAndTime:

Dim day As String = WeekdayName(dayNumber)

Так просто! Также этот класс имеет и другие полезные методы, связанные с работой с датами, обратите на него внимание :)

Print Friendly, PDF & Email

Как использовать командную строку в для загрузки прошивки в Quartus ii

Print Friendly, PDF & Email

Среда разработки Quartus II имеет удобное средство для загрузки «прошивки» в ПЛИС с помощью интерфейса командной строки (CLI) – консольную программу quartus_pgm.exe. Чтобы её использовать, проще всего использовать bat-файл примерно вот с таким содержимым:

Print Friendly, PDF & Email

WPF: Как получить список всех элементов UIElement заданного типа

Print Friendly, PDF & Email

Напишем метод, который будет возвращать список всех элементов некоторого контейнера:

''' <summary>
''' Возвращает все элементы UIElement заданного типа.
''' </summary>
Public Shared Iterator Function FindVisualChildren(Of T As DependencyObject)(ByVal depObj As DependencyObject) As IEnumerable(Of T)
    If (depObj IsNot Nothing) Then
        For i As Integer = 0 To VisualTreeHelper.GetChildrenCount(depObj) - 1
            Dim child As DependencyObject = VisualTreeHelper.GetChild(depObj, i)
            If (child IsNot Nothing) AndAlso (TypeOf child Is T) Then
                Yield CType((CObj(child)), T)
            End If
            For Each current As T In MainWindow.FindVisualChildren(Of T)(child)
                Yield current
            Next
        Next
    End If
    Return
End Function

Теперь можно использовать данный метод таким способом (здесь MainWindow – это тот контейнер, список чьих потомков нужно получить):

Dim sameTypeElements as New List(Of ComboBox)
For Each cb As ComboBox In FindVisualChildren(Of ComboBox)(MainWindow)
    sameTypeElements.Add(cb)
Next
Print Friendly, PDF & Email

Как перехватить нажатие клавиши в консольном приложении (.NET)

Print Friendly, PDF & Email

Если нужно проверить, не была ли нажата пользователем определённая клавиша клавиатуры во время выполнения длительной операции в консольном приложении, используется свойство Console.KeyAvailable().

Для примера напишем процедуру CheckEscapePressed(), которая будет проверять, не была ли нажата клавиша Escape:

Print Friendly, PDF & Email

Как прекратить общий доступ к сетевой папке в Windows

Print Friendly, PDF & Email

Чтобы прекратить доступ к общему ресурсу (папки Users, Documents и др.), нужно через панель управления открыть оснастку «Управление компьютером» и далее:

Управление компьютером Общие папки Общие ресурсы Выбрать нужный ПКМ Прекратить доступ.
Прекратить общий доступ к сетевой папке в Windows
Прекратить общий доступ к сетевой папке в Windows
Print Friendly, PDF & Email
Subscribe to this RSS feed
  1. Arduino это...
  2. Arduino это...
  3. Arduino это...
Отличный способ начать знакомство с электроникой, микроконтроллерами и программированием!
Замечательное средство для создания собственных электронных устройств, которые пригодятся в быту или для развлечения!
Уникальный конструктор, для которого разработаны десятки совместимых датчиков и модулей!
next
prev