我有一个带切换按钮的应用程序,需要根据检查状态更改背景.此应用程序还有一些常规按钮,与切换按钮共享相同的背景.而且,它们都有圆角.
所以我想出了这些风格:
<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,从风格GradientBrushOn到GradientBruthOff.
这是我第一次使用WPF,所以我认为这应该是一个相当基本的东西,但我找不到任何方法去做,即使在谷歌上花了2个小时.
当按钮处于活动控制状态时,我需要根据箭头按下来调节程序流程。像这样:
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 吗?
我编写了一个简单的应用程序来测试连接字符串中的 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 个连接。这令人费解。
我可以理解 …
我正在尝试选择特定行号之间的行(例如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排序而不创建临时表?
我正在尝试执行一个查询,但它对我来说效果不佳.我有这些表:
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"时才返回.
我只是在我的简单问题中寻找答案.这里是
我有一个透明图像的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图像而不是透明.
有没有解决方案让它完全透明?
这是我下面的SQL查询.我想从作为变量给出的列名中选择值.除了使用动态查询之外,有没有合适的方法?
SELECT EPV.EmployeeCode, @RateOfEmployee, @RateOfEmployer
FROM [HR_EmployeeProvisions] EPV
Run Code Online (Sandbox Code Playgroud) 我不知道我的查询有什么问题,但它并没有突破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) 我有两张桌子:
[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) 我有一个日期时间列的表信息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'的结果.
谁能告诉我这是什么原因?有关于它的在线资源吗?谢谢
如何分割逗号分隔多个字符串并推入数组。
例如,
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#的新手。帮我解决这个问题。
我想在适当的地方用逗号和连字符替换一组正在运行的和未运行的数字。
使用STUFF&XML 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)
这是一些示例输出: …