小编Ale*_*lex的帖子

如何使标签文字下划线?

如何在WPF中创建Label文本Underline?我被困了,找不到下划线的任何财产:

<Label Name="lblUserName"
       Content="Username"
       FontSize="14" FontWeight="Medium" />
Run Code Online (Sandbox Code Playgroud)

wpf xaml label underline

14
推荐指数
3
解决办法
4万
查看次数

字符串3个小数位

例1

Dim myStr As String = "38"
Run Code Online (Sandbox Code Playgroud)

我希望我的结果是38.000......


例2

myStr = "6.4"
Run Code Online (Sandbox Code Playgroud)

我想要我的结果 6.400


实现这一目标的最佳方法是什么?我想格式化一个字符串变量至少三个小数位.

vb.net string format

10
推荐指数
1
解决办法
6万
查看次数

未使用的局部变量(Visual Studio 2012)

当我遇到一些未使用的局部变量时,根据我的老板请求,我正在消除所有编译器警告的代码.当然,我删除了合法的那些,但我偶然发现了一对不那么直接的夫妇.(变量名称因安全性而更改)

Dim strAAA As String = "aaaa" & strBBB & Now.ToString("yyyyMMddHHmmss") & ".doc"
If FUNCTION_NAME(strCCCC, strAAA) Then Return True
Run Code Online (Sandbox Code Playgroud)

据称strAAA在下面明确使用时是一个"未使用的局部变量".

即使我写的如下:

Dim strAAA As String 
strAAA = "ViewLet" & strBBB & Now.ToString("yyyyMMddHHmmss") & ".doc"
If FUNCTION_NAME(strTmpFileName, strAAA) Then Return True
Run Code Online (Sandbox Code Playgroud)

警告仍然存在.

任何人都可以解开这个谜团吗?

vb.net compiler-warnings visual-studio-2012 unused-variables

8
推荐指数
1
解决办法
3409
查看次数

VB.NET进度条

可能重复:
.NET进度条未更新

我构建了一个进度条类,显示了for循环中的进度.这是进度条类的代码:

Public Class frmProgress
Private Sub frmProgress_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    progressBar.Minimum = 0
End Sub

Public Sub ProgressBarSetup(ByRef Maximum As Integer, ByRef Title As String)
    progressBar.Maximum = Maximum
    progressBar.Value = 0
    Me.Text = Title
    Me.Show()
End Sub

Public Sub IncProg()
    progressBar.Value += 1
    Application.DoEvents()

    If progressBar.Value = progressBar.Maximum Then
        Me.Close()
    End If
End Sub
End Class
Run Code Online (Sandbox Code Playgroud)

以下是我在for循环中使用它的方法:

Dim pb As New ProgressBar
pb.ProgressBarSetup(5000, "Test")

For i As Integer = 0 To 5000 - 1 …
Run Code Online (Sandbox Code Playgroud)

vb.net for-loop progress-bar

7
推荐指数
1
解决办法
3万
查看次数

委托/ Func转换和误导性编译器错误消息

我认为F#函数和System.Func之间的转换必须手动完成,但似乎有一种情况,编译器(有时)会为你做.当出错时,错误信息不准确:

module Foo =
    let dict = new System.Collections.Generic.Dictionary<string, System.Func<obj,obj>>()

    let f (x:obj) = x

    do
        // Question 1: why does this compile without explicit type conversion?
        dict.["foo"] <- fun (x:obj) -> x 
        // Question 2: given that the above line compiles, why does this fail?
        dict.["bar"] <- f 
Run Code Online (Sandbox Code Playgroud)

最后一行无法编译,错误是:

This expression was expected to have type
    System.Func<obj,obj>    
but here has type
    'a -> obj
Run Code Online (Sandbox Code Playgroud)

显然,该功能f没有签名'a > obj.如果F#3.1编译器对第一个字典赋值感到满意,那为什么不是第二个呢?

f#

7
推荐指数
1
解决办法
208
查看次数

确定应用程序是否正在使用Excel运行

目标

使用带有"搜索"按钮的Excel文件打开自定义程序.该程序用于研究.如果在用户单击按钮时已打开该程序,请将其弹出并专注于该给定程序.

现在的情况

这是我试图使用的代码:

搜索按钮

Private Sub btnSearch_Click()
    Dim x As Variant
    Dim Path As String

    If Not IsAppRunning("Word.Application") Then
        Path = "C:\Tmp\MyProgram.exe"
        x = Shell(Path, vbNormalFocus)
    End If
End Sub
Run Code Online (Sandbox Code Playgroud)

IsAppRunning()

Function IsAppRunning(ByVal sAppName) As Boolean
    Dim oApp As Object
    On Error Resume Next
    Set oApp = GetObject(, sAppName)
    If Not oApp Is Nothing Then
        Set oApp = Nothing
        IsAppRunning = True
    End If
End Function
Run Code Online (Sandbox Code Playgroud)

只有当我将"Word.Application"作为可执行文件时,此代码才有效.如果我尝试放"MyProgram.Application",该函数将永远不会看到程序正在运行.如何才能找到"MyProgram.exe"当前打开?

此外,我需要把重点放在它上面......

excel vba

7
推荐指数
1
解决办法
2万
查看次数

AutoScaling WinForm显示(小,中)

首先,请原谅我,但由于我的Windows安装工作,我的截图是法语的.但它仍然很容易理解.我将包含截图,使其更具视觉吸引力.

这是一些背景信息:

  • Windows 7 64位
  • Visual Studio 2010
  • 默认显示为100%
  • AutoScaleMode:DPI
  • AutoSize:是的

表格属性

我的应用程序是一个以默认(小 - 100%)显示开发的Windows窗体.像这样: 小(默认)显示

如您所见,"Petite"或Small显示是默认选择.

小显示屏 - 100%(默认)

以下是我的应用程序在此设置中的外观.这是正确的显示 完美展示

中等显示 - 125%

红色矩形指出了不需要的空白空间. 显示中等或125%

我试过了:

  • 锚定/停靠我的控件,例如我的拆分容器,表格布局面板,Form_Load 上的列表视图以及UI.这没用.
  • 将拆分容器添加到表单中,并将所有控件分别分隔到其中
  • 添加表格布局面板,其中所有文本框和按钮都位于各自的单元格中

我真的认为它因为锚定和对接而存在缩放问题.虽然这似乎不是问题......看起来有麻烦的是Tab Control和Listviews ......

一些用户(大多数)将其设置作为默认设置(100%),但有一些用户将其设置为"中"设置,从而导致此缩放问题.有没有办法来解决这个问题?

vb.net scaling dpi winforms autoscalemode

5
推荐指数
1
解决办法
1万
查看次数

使用BindingSource(Of CustomClassObjects)进行DataGridView过滤

我想过滤我的DataGridView数据.我的DataGridView的DataSource绑定到了BindingSource.BindingSource包含我clsBillHeader班级中的对象列表.

这是第一段代码:

Dim bSource As New BindingSource
bSource.DataSource = clsBillHeader.GetAll()
dgvBills.DataSource = bSource
bSource.Filter = "JobNumber Like '100%'" //Filter doesn't actually work
Run Code Online (Sandbox Code Playgroud)

得到所有()

Public Shared Function GetAll() As List(Of clsBillHeader)
    Dim mycn As New SqlConnection(connection)
    Dim mycmd As New SqlCommand("SELECT * FROM Headers", mycn)
    mycn.Open()
    Dim myreader As SqlDataReader = mycmd.ExecuteReader
    Dim myList As New List(Of clsBillHeader)
    While myreader.Read
        Dim item As New clsBillHeader()
        SetByReader(myreader, item) //Sets all values correctly (such as forein keys)
        myList.Add(item)
    End …
Run Code Online (Sandbox Code Playgroud)

c# vb.net datagridview bindinglist bindingsource

5
推荐指数
1
解决办法
2万
查看次数

具有多个图像的 WPF DataGrid RowDetailsTemplate (MVVM)

目标

使用 MVVM 标准在 DataGrid 的 RowDetails 模板中添加多个图像。

背景

我有一个带有 DataGrid 的检查窗口,用于保存损坏物品的描述以及检查员的姓名首字母。更重要的是,这个DataGrid的RowDetailsTemplate需要保存检查员拍摄的损坏物品的图片(因此损坏物品的图片可能不止一张)。

问题

我有一个 DamagedWindow.xaml 旨在创建我的 DamagedItem 条目。它看起来像这样:

RowDetails 工作

数据网格 (.XAML)

<DataGrid ItemsSource="{Binding Pictures}" SelectedItem="{Binding SelectedPicture}" AutoGenerateColumns="False" Grid.Column="1" Grid.Row="2" Margin="5" HorizontalAlignment="Stretch" Name="DataGrid1" VerticalAlignment="Stretch" CanUserAddRows="False">
    <DataGrid.Columns>
        <DataGridTextColumn Header="Titre" Binding="{Binding Name}" Width="*" />
    </DataGrid.Columns>
    <DataGrid.RowDetailsTemplate>
        <DataTemplate>
            <Image Height="100" Source="{Binding Path}" />
        </DataTemplate>
    </DataGrid.RowDetailsTemplate>
</DataGrid>
Run Code Online (Sandbox Code Playgroud)

如您所见,我的 RowDetails 模板在此 DataGrid 中运行良好。我有一个名为 PicturesList 的类,它继承了我的 PictureModel( Name, Description, Path)的 ObservableCollection 。


您在 DataGrid 上方看到的文本框是我的 DamagedItemModel ( Description, Initiales, PicturesList) 的属性。因此,当用户单击接受(复选标记)按钮时,将损坏的项添加到损坏的项列表中,然后从我的主窗口将其设置为 DataGrid …

vb.net wpf datagrid mvvm rowdetailstemplate

5
推荐指数
1
解决办法
1827
查看次数

如何刷新CheckBox上的绑定DataGridView单击

目标

我需要一种方法,通过点击我的界限将项目设置为已完成.完成后,由于行的过滤器,不再看到该项目.CheckBoxDataGridViewDataGridViewDataView


说明

我有一个DataGridView必然的DataView.

Private Sub LoadLispImprovements()
    Private ViewLispImprovements As New DataView
    ViewLispImprovements.Table = Programs.Tables("dtLispImprovements")
    ViewLispImprovements.RowFilter = "Completed=0"
    Lisp_dgvImprovements.DataSource = ViewLispImprovements
End Sub
Run Code Online (Sandbox Code Playgroud)

这个DataView表的设置如下DataTable:

DataTable显示主键和布尔值(红色)

DataTable将其主键设置为正确的字段.该Completed字段有一个红色方块,只是为了向您展示我将其设置为布尔值.

看看我的DataGridView:

DataGridView显示绑定项的结果

这是我点击复选框的地方,该项目应该被过滤掉(因为没有勾选ShowAll复选框)


问题

当我点击时CheckBox,该项目保持在DataGridView.为了将其过滤掉,我必须选择另一行.看一看:

检查改进,但仍保留在Dgv中

当我改变行时,它最终会消失:

改进已被过滤掉,但只有当我尝试选择另一行时

在选中完成的复选框后,如何让它立即删除?

PS:是的我有CurrentCellDirtyStateChanged事件处理程序.

Private Sub Lisp_dgvImprovements_CurrentCellDirtyStateChanged(sender As Object, e As System.EventArgs) Handles Lisp_dgvImprovements.CurrentCellDirtyStateChanged
    If Lisp_dgvImprovements.IsCurrentCellDirty Then
        Lisp_dgvImprovements.CommitEdit(DataGridViewDataErrorContexts.Commit)
    End If
End Sub
Run Code Online (Sandbox Code Playgroud)

vb.net datatable datasource datagridview rowfilter

5
推荐指数
1
解决办法
1248
查看次数