这是问题:
set Pathname = C:\Program Files
cd %Pathname%
pause
Run Code Online (Sandbox Code Playgroud)
正如我所料,上面的内容并未改变目录.谁能告诉我为什么?
将"更改所有项目的大小"滑块设置Control Panel\Appearance and Personalization\Display
为较大(更改此注册表项HKEY_CURRENT_USER\Control Panel\Desktop\DesktopDPIOverride
:) :导致Control.PointToScreen()方法错误计算.这可以使用Windows窗体中的以下Class1重现:
public class Class1 : Control
{
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
Draw(e.ClipRectangle, e.Graphics);
}
private void Draw(Rectangle rect, Graphics graphics)
{
Pen pen = new Pen(Color.Red);
pen.Width = 2;
graphics.DrawRectangle(pen, rect);
}
protected override void OnMouseDown(MouseEventArgs e)
{
base.OnMouseDown(e);
Point p = this.PointToScreen(new Point(0, 0));
ControlPaint.DrawReversibleFrame(new Rectangle(p, new Size(e.X, e.Y)), Color.Yellow, FrameStyle.Dashed);
}
protected override void OnMouseUp(MouseEventArgs e)
{
base.OnMouseUp(e);
this.Invalidate();
}
}
Run Code Online (Sandbox Code Playgroud)
在WinForm中使用此控件并单击它可以按预期工作.现在将"更改所有项目的大小"更改为"更大"并再次运行代码 - 代码不再按预期运行,PointToScreen方法返回(0,0)的错误值.
有人知道如何解决这个问题吗?非常感谢.
问题是,为什么这些代码片段会产生不同的结果?
private void InitializeOther()
{
double d1, d2, d3;
int i1;
d1 = 4.271343859532459e+18;
d2 = 4621333065.0;
i1 = 5;
d3 = (i1 * d1) - Utils.Sqr(d2);
MessageBox.Show(d3.ToString());
}
Run Code Online (Sandbox Code Playgroud)
和
procedure TForm1.InitializeOther;
var d1, d2, d3 : Double;
i1 : Integer;
begin
d1:=4.271343859532459e+18;
d2:=4621333065.0;
i1:=5;
d3:=i1*d1-Sqr(d2);
ShowMessage(FloatToStr(d3));
end;
Run Code Online (Sandbox Code Playgroud)
Delphi代码给了我816,而c#代码给了我0.使用计算器,我得到775.任何人都能给我一个详细的解释吗?
非常感谢!
我有一个非常简单的WPF UserControl,如下所示:
namespace MyUserControl
{
/// <summary>
/// Interaction logic for UserControl1.xaml
/// </summary>
public partial class UserControl1 : UserControl
{
public UserControl1()
{
InitializeComponent();
}
protected override void OnRender(DrawingContext drawingContext)
{
Rect rect = new Rect(RenderSize);
drawingContext.DrawRectangle(Brushes.AliceBlue, new Pen(Brushes.Red, 1), rect);
base.OnRender(drawingContext);
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后我在标准WPF窗口的XAML中使用它,如下所示:
<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="clr-namespace:MyUserControl;assembly=MyUserControl"
Title="Window1" Height="351" Width="496">
<Grid>
<mc:UserControl1 Margin="0,0,0,0" Name="uControl1" Initialized="uControl1_Initialized"/>
</Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)
使用上面的WPF窗口后面的代码如下所示:
private void uControl1_Initialized(object sender, EventArgs e)
{
MessageBox.Show("Hello!");
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,Initialized事件永远不会被触发.谁能告诉我为什么?
非常感谢!
本演练适用于SQL Express:http: //msdn.microsoft.com/en-us/library/gg197522(v = VS.103).aspx
我希望它能与MySQL一起工作.我做了一些研究,但我发现的技术都没有能够为我做到.理想情况下,我想做这样的事情:
<entityFramework>
<defaultConnectionFactory type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data" />
</entityFramework>
Run Code Online (Sandbox Code Playgroud)
这不起作用(我安装了MySQL Connector Net 6.5.4并引用了MySql.Data).我已尝试从IDbConnection工厂派生,如此课程所示:http://www.vworker.com/RentACoder/misc/BidRequests/ShowBidRequest.asp?lngBidRequestId=1563829
然后使用:
<entityFramework>
<defaultConnectionFactory type="SchoolModel.MySqlConnectionFactory, SchoolModel" />
Run Code Online (Sandbox Code Playgroud)
但这也不起作用.任何人都可以给我一些关于如何使其工作的指示?
非常感谢.
我在Visual Studio 2008中使用WPF.我有一个简单的WPF UserControl,其代码如下:
public partial class UserControl1 : UserControl
{
public UserControl1()
{
InitializeComponent();
Composite = new Composite();
}
protected override void OnRender(DrawingContext drawingContext)
{
//LayoutRoot is name of default Grid instance
if (!LayoutRoot.Children.Contains(Composite))
{
LayoutRoot.Children.Add(Composite);
}
}
public Composite Composite
{
get;
set;
}
}
public class Composite : ContentControl
{
protected override void OnRender(DrawingContext drawingContext)
{
drawingContext.DrawRectangle(new SolidColorBrush(Color), new Pen(Brushes.Black, 1.0), new Rect(RenderSize));
}
public Color Color
{
get;
set;
}
}
Run Code Online (Sandbox Code Playgroud)
然后我在WPF应用程序中使用此UserControl,页面的XAML如下所示:
<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" …
Run Code Online (Sandbox Code Playgroud) BHere的代码:
C#
private void button1_Click(object sender, EventArgs e)
{
int a = -33554432;
byte b = (byte)(a >> 24);
MessageBox.Show(b.ToString());
}
Run Code Online (Sandbox Code Playgroud)
java的
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
int a = -33554432;
byte b = (byte)(a >> 24);
JOptionPane.showMessageDialog(null, Byte.toString(b));
}
Run Code Online (Sandbox Code Playgroud)
我已经阅读了这个问题,我相信有一种相对简单的方法来理解不同的行为,但我需要一些帮助才能达到这种理解.请问有谁?
非常感谢!
编辑:好的,现在使用Byte.toString().c#的输出= 254 java = -2
c# ×3
wpf ×3
.net ×2
.net-3.5 ×1
batch-file ×1
command-line ×1
delphi ×1
java ×1
mysql ×1
operators ×1
refresh ×1
windows ×1
winforms ×1
wpf-controls ×1