|
|
Not really.
Right at the top is says
"Serialized. In serialized mode, SQLite can be safely used by multiple threads with no restriction"
and
"The default mode is serialized."
I haven't changed the threading mode, so it should be default.
If it's not broken, fix it until it is
|
|
|
|
|
dbContext is not thread safe.
Based on the few code fragments you've posted, it looks like you're sharing dbContext between your threads. Assuming your "lock" is even a solution, I think it is in the wrong place and should have been put in the top of the loadWorker_DoWork() method.
(I would have given each thread their own dbContext).
|
|
|
|
|
I was under the impression you could only have 1 datareader active at any one time, I assume EF spit uses datareader as the underlying connection type. The second connection may be being reject on that basis.
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
Hi,
I need to save the index of all columns so that when the user opens the form again it is in the same order.I am able to get the OldDisplayIndex and NewDisplayIndex of the reordered column.But i need the new indices of all the columns after reorder in ListView.
<pre>
private void listView1_ColumnReordered(object sender, ColumnReorderedEventArgs e)
{
foreach(ColumnHeader cHeader in ListView1.Columns)
{
int iOldValue = e.OldDisplayIndex ;
int iNewValue = e.NewDisplayIndex ;
int index = cHeader.DisplayIndex;
}
}
|
|
|
|
|
|
Message Closed
modified 10-Aug-15 18:28pm.
|
|
|
|
|
Very novice question. Got a C# program from a codeproject article and can not build it in VS (Visual Studio 2010)... Would someone tell me what properties such as "target framework" I need to set? How do I find what "target framework" the project is built on? Looked at assemblyinfo.cs and there is no mention of it. Thanks in advance
|
|
|
|
|
Normally, the project from an article will include all the code necessary - including the .SLN and .CSPRJ files which define the framework version.
If it doesn't, then the best thing to do is try to contact the author - there is a forum at the bottom of the article for just that - and see if he can help.
If not, then try a version suitable for the publication date!
Sorry, but there are tens of thousands of articles (if not hundreds of thousands) produced by a huge number of people, using a huge number of environments / versions - we can't tell you anything without knowing which article it was!
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
Thanks for the pointers. I appreciate it.
|
|
|
|
|
Right click on the project, select Properties. Click the Application tab. There's a drop down for Target Framework.
If it's not broken, fix it until it is
|
|
|
|
|
Thanks Kevin, but you are stating the obvious and general... I have downloaded an article and opened it with VS2010 and get error when building it... the error message is to the nature of different framework.... So how do I know which framework is used in downloaded article?
|
|
|
|
|
The SLN file will tell you. Open with an editor and look for
"Microsoft Visual Studio Solution File, Format Version XX.XX"
Then look here[^]
If it's not broken, fix it until it is
|
|
|
|
|
Thanks, I appreciate your answer and pointer link. And love you motto: If it's not broken, fix it until it is
|
|
|
|
|
NP. Let me know if that works.
My motto comes from 30 years of development... and watching ppl 'Fix' things
If it's not broken, fix it until it is
|
|
|
|
|
I have a WPF canvas that is as wide as the window, and want the user to be able to drag it to the right pas the right edge, but no more left than its original position.
Here's what I have so far:
private void root_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
var element = sender as FrameworkElement;
anchorPoint = e.GetPosition(null);
element.CaptureMouse();
isDragging = true;
e.Handled = true;
}
private void root_MouseMove(object sender, MouseEventArgs e)
{
if (isDragging)
{
Canvas element = sender as Canvas;
currentPoint = e.GetPosition(null);
transform.X += currentPoint.X - anchorPoint.X;
transform.Y = transform.Y;
innerCanvas.RenderTransform = transform;
anchorPoint = currentPoint;
}
}
private void root_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
if (isDragging)
{
var element = sender as FrameworkElement;
element.ReleaseMouseCapture();
isDragging = false;
e.Handled = true;
}
}
I've tried this in MouseMove:
if (currentPoint.X - anchorPoint.X > -1)
{
transform.X += currentPoint.X - anchorPoint.X;
transform.Y = transform.Y;
innerCanvas.RenderTransform = transform;
anchorPoint = currentPoint;
}
but the control only moves once, and then no more at all after that.
How do I keep the control from being move to the left so that its right edge is never past the window's right edge?
If it's not broken, fix it until it is
modified 6-Aug-15 13:31pm.
|
|
|
|
|
I'm less at sub-novice level with WPF but I would imagine that the general principles for solving this problem will much the same as with System.Windows.Forms. Rather than attempting to calculate if an arbitrary new position is valid we can simply limit the mouse movement so that all achievable positions become ok.
1) On mouse button down calculate and set a constraining rectangle for the cursor
2) In mouse move relocate the label based on an offset from the cursor position
3) On losing mouse capture remove the constraining reactangle
Here's one I prepared earlier. It should compile and run:
using System;
using System.Drawing;
using System.Windows.Forms;
namespace MouseMoveLabelDemo {
public sealed class DemoForm : Form {
[STAThread]
private static void Main() {
Application.Run(new DemoForm());
}
private readonly Point home;
private Label itinerantLabel;
private Size offset;
public DemoForm() {
home = new Point(10, 10);
BackColor = Color.White;
itinerantLabel = new Label();
itinerantLabel.Text = "Move Me";
itinerantLabel.BackColor = Color.Pink;
itinerantLabel.BorderStyle = BorderStyle.FixedSingle;
itinerantLabel.Location = home;
itinerantLabel.Parent = this;
itinerantLabel.MouseDown += Label_MouseDown;
itinerantLabel.MouseMove += Label_MouseMove;
itinerantLabel.MouseCaptureChanged += Label_CaptureLost;
SizeChanged += DemoForm_SizeChanged;
}
private void DemoForm_SizeChanged(object sender, EventArgs e) {
itinerantLabel.Location = home;
}
private void Label_MouseDown(object sender, MouseEventArgs e) {
Label lbl = (Label)sender;
if (e.Button == MouseButtons.Left) {
Point cursorPosition = Cursor.Position;
Point labelPosition = PointToScreen(lbl.Location);
offset = new Size(cursorPosition.X - labelPosition.X, cursorPosition.Y - labelPosition.Y);
Rectangle cursorClippingRectangle = Rectangle.FromLTRB(
offset.Width,
offset.Height,
ClientRectangle.Width - (lbl.Width - offset.Width) + 1,
ClientRectangle.Height - (lbl.Height - offset.Height) + 1);
Cursor.Clip = RectangleToScreen(cursorClippingRectangle);
}
}
private void Label_MouseMove(object sender, MouseEventArgs e) {
Label lbl = (Label)sender;
if (lbl.Capture) {
lbl.Location = PointToClient(Cursor.Position - offset);
}
}
private void Label_CaptureLost(object sender, EventArgs e) {
Cursor.Clip = Rectangle.Empty;
}
}
}
Alan.
|
|
|
|
|
Hi All
Am facing a problem while debugging the application using NUnit. Getting one application error like below:
SetUp : System.ApplicationException : Error in the application.
at COMSVCSLib.TransactionContextClass.CreateInstance(String pszProgId)
I successfully installed Interop.COMSVCSLib.dll in GAC but unable to proceed further because of this error. Please help.
Platform:
Visual Studio 2012, Framework Version: 4.5
Application Target Platform: Any CPU, Framework: 3.5
|
|
|
|
|
I was wondering if there is a way to execute a keyboard shortcut programatically in c#?
|
|
|
|
|
Load's of 'em, depending on the environment.
For WinForms, it's pretty simple:
The first way is via a menu - each menu item (including ToolStripMenuItem) has a ShortcutKeys property which lets you activate that menu item directly.
The more flexible way is to set the form KeyPreview property to true, and override the ProcessCmdKey method:
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (!tbFilter.ContainsFocus || (ModifierKeys & Keys.Control) != 0)
{
if (keyData == Keys.Left || keyData == (Keys.Left | Keys.Control))
{
butDeselectAll.PerformClick();
return true;
}
if (keyData == Keys.Right || keyData == (Keys.Right | Keys.Control))
{
butSelectAll.PerformClick();
return true;
}
}
return base.ProcessCmdKey(ref msg, keyData);
}
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
I am trying to do this on a winform, but I don't want to detect if a key has been pressed, I just want to execute a key combination, without the user even knowing.
|
|
|
|
|
Sorry?
Are you trying to send a keystroke combination to an already running app?
If so, which one? Yours? Or a different one?
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
I am trying to send a keystroke combination to an already running app such as ms word, or any other running app.
|
|
|
|
|
I want to send a keystroke combination to an already running app such as ms word or any other app.
|
|
|
|
|
You can use SendKeys[^] to send to the active application, but if you want to send to a specific app all the time, then see here: Sending Keystrokes to another Application in C#[^]
Be aware, this may or may not work if the target app is running at a higher level than your app!
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|