小编Zoh*_*led的帖子

覆盖样式中的特定属性

我有一个带切换按钮的应用程序,需要根据检查状态更改背景.此应用程序还有一些常规按钮,与切换按钮共享相同的背景.而且,它们都有圆角.

所以我想出了这些风格:

<Style TargetType="Button" BasedOn="{StaticResource {x:Type Control}}" x:Key="OnButton">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="Button">
                <Border CornerRadius="15" Background="{StaticResource GradientBrushOn}" BorderThickness="1" Padding="2">
                    <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" />
                </Border>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

<Style TargetType="Button" BasedOn="{StaticResource OnButton}" x:Key="OffButton">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="Button">
                <Border CornerRadius="15" Background="{StaticResource GradientBrushOff}" BorderThickness="1" Padding="2" x:Name="TheBorder">
                    <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" />
                </Border>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>
Run Code Online (Sandbox Code Playgroud)

长话短说,我正在寻找一种方式来缩短OffButton样式,以便它只会改变的背景属性OnButton,从风格GradientBrushOnGradientBruthOff.

这是我第一次使用WPF,所以我认为这应该是一个相当基本的东西,但我找不到任何方法去做,即使在谷歌上花了2个小时.

wpf wpf-style

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

.NET Winforms 按钮 KeyDown 用于箭头键

当按钮处于活动控制状态时,我需要根据箭头按下来调节程序流程。像这样:

Private Sub btn_OK_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles btn_OK.KeyDown

    If e.KeyCode = Keys.Up Then
        If mode = mymodes.first Then
            firstcontrol.Focus()
        Else
            secondcontrol.Focus()
        End If
    End If
End Sub
Run Code Online (Sandbox Code Playgroud)

正如我所看到的,按下任何箭头键根本不会触发 KeyDown 事件。相反,程序会执行一些内部功能,并通过使用表单的 Tab 键顺序(看起来是这样)来移动焦点。KeyPreview 在实际表单中设置为 true。

这里有什么方法可以使用箭头键获得所需的功能,而不需要子类化按钮并使用 ProcessCmdKey 吗?

.net vb.net winforms

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

.NET SQL 连接超过最大池大小

我编写了一个简单的应用程序来测试连接字符串中的 Max Pool Size=50。

    static void Test1()
    {
        string connectionString = @"Server=.;Database=appsdb;Trusted_Connection=True;Application Name=JH;Max Pool Size=50";
        for (int i = 1; i <= 100; i++)
        {
            var conn = new SqlConnection(connectionString);
            conn.Open();
            using (var cmd = new SqlCommand("select newid()", conn))
            {
                using (var r = cmd.ExecuteReader())
                {
                    while (r.Read())
                    {
                        Console.WriteLine($"[{Thread.CurrentThread.ManagedThreadId}] {i} - {r.GetGuid(0)}");
                    }
                }
            }
        }
        Console.WriteLine("Done");
        Console.ReadLine();
    }
Run Code Online (Sandbox Code Playgroud)

我让它运行了 51 个连接,最初预计第 51 个连接会失败,但事实并非如此。在第 71 次
连接 时始终失败,但有以下例外:

System.InvalidOperationException:“超时已过期。从池中获取连接之前超时时间已过。发生这种情况可能是因为所有池连接都在使用中并且达到了最大池大小。

sp_who当我用(或)检查时,sp_who2我可以看到正好有50 个连接。这令人费解。
我可以理解 …

.net sql-server ado.net

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

使用带有ORDER BY ID的Row_Number()选择行

我正在尝试选择特定行号之间的行(例如1到50或51到10等).

下面是我的表MatTk模式,所有列都允许空值:

tk_id [varchar(50)] | mat_id [varchar(50)] | ven_id [varchar(50)] | tk_rate [money]
   1023                     104                     2212               120.11 
Run Code Online (Sandbox Code Playgroud)

本文使用Row_Number()建议选择行的子集ORDER BY id但我想避免它并以表数据的自然顺序显示它.

另请查看本文SQL Server 2005 ROW_NUMBER(),不带ORDER BY,建议插入临时表,但它不是一个选项,因为该MatTk表有数百万行.

有没有办法按行号查询行而不按ID排序而不创建临时表?

sql database sql-server row-number sql-server-2008-r2

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

SQL查询帮助使用UNION或嵌套查询

我正在尝试执行一个查询,但它对我来说效果不佳.我有这些表:

create table spelare(
   Spnr char(13),
   Snamn varchar (20),
   primary key (Spnr)
)engine=innodb;


create table speltillfalle(
   starttid varchar (15),
   Tnamn varchar (20),
   Spnr char (13),
   resultat char (10),
   primary key (starttid, Tnamn, Spnr),
   foreign key (Tnamn) references tavling(Tnamn),
   foreign key (Spnr) references spelare(Spnr)
)engine=innodb;
Run Code Online (Sandbox Code Playgroud)

我想要做的是表格"spelare"中匹配的"Spnr"列与表格"speltillfalle"中的Spnr列.我使用这个查询做到了:

SELECT Spnr FROM spelare UNION SELECT Spnr FROM speltillfalle;
Run Code Online (Sandbox Code Playgroud)

这给了我两个表中匹配的所有Spnr值.我想做的是同样的事情,并添加另一个条件.IT应返回相同的内容,但仅当表"speltillfalle"中的"resultat"列的值为相应匹配的Spnr的"Diskad"时才返回.

mysql sql union

0
推荐指数
1
解决办法
59
查看次数

图片框的透明度

我只是在我的简单问题中寻找答案.这里是

我有一个透明图像的pricturebox background我将图片框设置backcolor为透明.

之后,图片透明bg.但在我添加此代码后

ìmg1.Left = windows.forms.cursor.Position.X - me.Left ìmg1.Top= windows.forms.cursor.Position.Y - me.Top

'code for using img as cursor

图像bg并不像这样透明

在此输入图像描述

我认为backcolor透明不是真的透明.它只会获取backcolor表单并使用它作为backcolor图像而不是透明.

有没有解决方案让它完全透明?

vb.net winforms

0
推荐指数
1
解决办法
2342
查看次数

我需要在Store Procedure中的select语句中使用变量传递列名,但我不能使用动态查询

这是我下面的SQL查询.我想从作为变量给出的列名中选择值.除了使用动态查询之外,有没有合适的方法?

SELECT EPV.EmployeeCode, @RateOfEmployee, @RateOfEmployer
FROM [HR_EmployeeProvisions] EPV
Run Code Online (Sandbox Code Playgroud)

sql database sql-server sql-server-2008

0
推荐指数
2
解决办法
2047
查看次数

tsql while循环和时间问题

我不知道我的查询有什么问题,但它并没有突破while循环.我认为这是我如何计算时间但不确定.

DECLARE @start DATETIME = GETDATE(), @currenttime INT = 0

while @currenttime <= 1 --- represent min
begin

    [execute Query]

    ' this will always return 0 and keep executing query even though the 1 min has been reached
    set @currenttime = CONVERT(INT, DATEDIFF(s, @start, GETDATE())%3600/60) 
end
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server

0
推荐指数
1
解决办法
370
查看次数

从一个对象中的2个表中获取行

我有两张桌子:

[Company]

 - CompanyID
 - Company_Name 
 - softID

[User]

 - UserID 
 - CompanyID
 - User_Name
Run Code Online (Sandbox Code Playgroud)

在我的后端,我有以下课程:

Company 

 - CompanyID
 - Company Name
 - List<User> CompanyUsers
Run Code Online (Sandbox Code Playgroud)

我只是在使用System.Data.SqlClient.

我的问题是:

如何与用户一起检索公司对象?

我目前在我的数据访问类中有这个方法:

public Company getCompany(int _softID)
        {
            Company temp = new Company();

            conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["Database"].ConnectionString);
            SqlCommand command = new SqlCommand(@"SELECT * FROM company WHERE softID = @softID", conn);
            command.Parameters.Add("@softID", SqlDbType.Int).Value = _softID;
            {
                conn.Open();
                SqlDataReader reader = command.ExecuteReader();
                if (reader.Read())
                {
                    temp.CompanyID = int.Parse(reader["companyID"].ToString());
                    temp.companyName = reader["company_name"].ToString();
                }
                conn.Close();
            } …
Run Code Online (Sandbox Code Playgroud)

c# sql oop select object

0
推荐指数
1
解决办法
62
查看次数

将日期转换为varchar然后比较

我有一个日期时间列的表信息begindate.

我尝试了以下2个SQL语句:

select * 
from info 
where begindate > '06/30/2018'

select * 
from info 
where convert(varchar, begindate, 101) > '06/30/2018'
Run Code Online (Sandbox Code Playgroud)

第一个查询结果是正确的,但第二个查询结果错误地包括那些迟于'06/30/2017'的结果.

谁能告诉我这是什么原因?有关于它的在线资源吗?谢谢

sql sql-server sql-server-2012

0
推荐指数
1
解决办法
111
查看次数

分割逗号分隔多个字符串并压入数组值

如何分割逗号分隔多个字符串并推入数组。

例如,

string a = "TN,KA,KL";
string b = "AP,UP,JK";
Run Code Online (Sandbox Code Playgroud)

结果数组应为:

string[] resultArray = new string[] {"TN", "KA", "KL", "AP", "UP", "JK"};
Run Code Online (Sandbox Code Playgroud)

我是C#的新手。帮我解决这个问题。

c#

-1
推荐指数
1
解决办法
61
查看次数

如何在运行编号之间添加破折号以及在非运行编号之间添加逗号

我想在适当的地方用逗号和连字符替换一组正在运行的和未运行的数字。

使用STUFFXML PATH我可以通过得到类似的东西来完成我想要的一些事情1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 13, 15, 19, 20, 21, 22, 24

WITH CTE AS (  
SELECT DISTINCT t1.ORDERNo, t1.Part, t2.LineNum  
FROM [DBName].[DBA].Table1 t1    
JOIN Table2 t2 ON t2.Part = t1.Part    
WHERE t1.ORDERNo = 'AB12345') 

SELECT c1.ORDERNo, c1.Part, STUFF((SELECT ', ' + CAST(LineNum AS VARCHAR(5))  
FROM CTE c2  
WHERE c2.ORDERNo= c1.ORDERNo
FOR XML PATH('')), 1, 2, '') AS [LineNums]  
FROM CTE c1  
GROUP BY c1.ORDERNo, c1.Part
Run Code Online (Sandbox Code Playgroud)

这是一些示例输出: …

t-sql

-2
推荐指数
1
解决办法
76
查看次数