|
This answer details an extremely minimal implementation of what you want. It assumes that you have two TreeView s on your form with names treeView1 and treeView2 .
treeView1.MouseDown += new MouseEventHandler( SourceTreeMD );
treeView1.MouseUp += new MouseEventHandler( SourceTreeMU );
treeView1.MouseLeave += new EventHandler( SourceTreeML );
treeView2.DragDrop += new DragEventHandler( TargetDrop );
treeView2.DragEnter += new DragEventHandler( TargetEnter ); As implementations of the above declared event handlers, you need the following in your form class.
private void SourceTreeMD( object sender, MouseEventArgs mea )
{
draggedNode = treeView1.GetNodeAt( mea.X, mea.Y );
}
private void SourceTreeMU( object sender, MouseEventArgs mea )
{
draggedNode = null;
}
private void SourceTreeML( object sender, EventArgs ea )
{
if( draggedNode != null )
{
treeView1.DoDragDrop( draggedNode, DragDropEffects.Move );
}
}
private void TargetDrop( object sender, DragEventArgs dea )
{
Point p = treeView2.PointToClient( new Point( dea.X, dea.Y ) );
TreeNode dropTargetNode = treeView2.GetNodeAt( p );
TreeNode sourceNode = dea.Data.GetData( typeof( TreeNode ) ) as TreeNode;
if( dropTargetNode != null && sourceNode != null )
{
sourceNode.Remove();
dropTargetNode.Nodes.Add( sourceNode );
}
else if( sourceNode != null )
{
sourceNode.Remove();
treeView2.Nodes.Add( sourceNode );
}
}
private void TargetEnter( object sender, DragEventArgs dea )
{
if( dea.Data.GetDataPresent( typeof( TreeNode ) ) )
{
dea.Effect = DragDropEffects.Move;
}
}
private TreeNode draggedNode;
"we must lose precision to make significant statements about complex systems."
-deKorvin on uncertainty
|
|
|
|
|
Thanx Curtis....
But if i set breakpoint in the TargetEnter and TargetDrop,when i use the mouse to drag a node from source and place it in the target,its not working...
Also,the nodes in the source neednot be removed...
How can i do this...
Plz..Help...
|
|
|
|
|
When you set the breakpoint, it messes with the mouse events. Don't do it.
To not remove the nodes in the source tree, remove the line that reads something like sourceNode.Remove(). You'll have to clone the nodes, then, methinks.
"we must lose precision to make significant statements about complex systems."
-deKorvin on uncertainty
|
|
|
|
|
|
My pleasure. Happy coding!
"we must lose precision to make significant statements about complex systems."
-deKorvin on uncertainty
|
|
|
|
|
i am developing a financial system using c sharp
i have 1 master class that open all the master table required by all the form and store it in 1 static dataset that can be access from anywhere in the sytem..
but i want to change to have make it something like caching system where if the data required is not in the master class then i will get it from server..
the tricky part is that i want clear unwanted resource so i want to have to checking like if the dataset/datatable is not used in a certain timeframe let say 15 mins the i want to close the file
any idea on how implement this idea..
sample
MasterFile [Customer]
when i do invoice transaction i will open the customer if the customer is not open at the master class
and after i close the invoice screen the customer data still remain there for a cretain perriod of time.. so any form after that need to access the customer file dont have to fetch data from sql server again.. if not use in 30 mins it will closed...
thanks
|
|
|
|
|
Hi everybody!!!
I need your help!!!
Is it possible to write text on row header in a DataGrid without writing a new class?
Thank you
Alessio
|
|
|
|
|
How to open an excel document with c#, The excel document must open in its own window when i press a button
|
|
|
|
|
Try using the Process class of the System.Diagnostic namespace.
Bikash Rai
|
|
|
|
|
I have used the following code
Process.Start("EXCEL.EXE", "c:\\temp\\test.xls");
and ASP.NET starts a process, EXCEL.EXE, but the window does not open. I have tried to set the WindowStyle to maximize but stil nothing...
What to do?
|
|
|
|
|
Sorry, but I am not into much of ASP.NET. I think it has got something to do with Security permissions and sruff. Why donlt you post this in the ASP.NET forum?
Bikash Rai
|
|
|
|
|
Take a look here[^].
Regards,
Polis
Can you practice what you teach?
|
|
|
|
|
Hello !
Actually I am using PictureBox dynamically in the code I am getting image names from Dayabase and images from a folder I want to show these images against the specific Itemo No in Datagrid and also want to raise pictureBox1_MouseMove and pictureBox1_Click events but I don't know how can i do it Dynamically so please send me some code for it in C# I will be really really thankfull to your for your first attention plz..................................
Regards,
AbuBakar
|
|
|
|
|
Hi!
It is kinda quite easy to create dynamically objects and catch the events. First of all, create the object and set all properties:
// Create instance of PictureBox
System.Windows.Forms.PictureBox loPictureBox = new System.Windows.Forms.PictureBox();
// Set some properties
loPictureBox.Name = "NewPictureBox" + m_PictureBoxCount.ToString();
loPictureBox.BackColor = System.Drawing.Color.Blue;
loPictureBox.Location = new System.Drawing.Point(1, 40);
loPictureBox.Size = new System.Drawing.Size(120,40);
Add the new PictureBox to you formular:
// Add object to container
this.Controls.Add(loPictureBox);
Then link the events to functions:
// Add eventhandler to catch the events
loPictureBox.Click += new EventHandler(NewPictureBoxesClick);
loPictureBox.MouseMove += new MouseEventHandler(NewPictureBoxesMouseMove);
To catch the event, you just need to declare the functions like they should need to be declared:
private void NewPictureBoxesClick(object sender, EventArgs e)
{
// ... your code when clicked
}
private void NewPictureBoxesMouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
{
// ... your code when mousemove
}
Try to understand the code and not just copy it. It is really quite simple and if you need more help to understand, just let me know!
Marcel Erz
|
|
|
|
|
Hello!
Thanks a lot for your quick and comprehensive answer of my question I would also like to tell you that I am developing a Desktop application not Web base application I want to show each image against each product Id in Datagrid, I studied your code throughly it is really easy but one thing i could not able to enhale which is this line
loPictureBox.Name = "NewPictureBox" + m_PictureBoxCount.ToString();
m_PictureBoxCount.ToString() it is really disturbing me,In this line I don't know how and why u used it and from where u got it " m_PictureBoxCount " please let me know about this point,
Regards,
AbuBakar
|
|
|
|
|
Hello,
Does anyone have any idea that how can I store extra information in an image. such as text, as a part of image. I don't want to show the text in an image but I want to store this information in it.
Actual I have to design an application which can embed and retrieve text messages from an image.
Something like message smuggler (software) does.
Any help in this regard?
TIA
Maqsood Ahmed - MCAD.net
Kolachi Advanced Technologies
http://www.kolachi.net
|
|
|
|
|
Google for steganography.
Cheers,
Vikram. "When I read in books about a "base class", I figured this was the class that was at the bottom of the inheritence tree. It's the "base", right? Like the base of a pyramid." - Marc Clifton.
|
|
|
|
|
HI!
You can add information in the lowest significant bits of the color at each pixel. A human eye will not be able to see those minor differences. A simple example: You have two pixel and want to use the 2 lowest significant bits at each pixel of each color.
(3-colors * 2-bit) * 2-pixel = 12-bits
In an two pixel image with three colors and a use of 2 bits of each color, you can store 12-bits, so 1.5-byte in it. But usually you have bigger size picture , so you can store more data inside. For Example: 1024 x 768 pciture
(3-colors * 2-bit) * (1024 * 768)-pixel = (6 * 786432)-bits = 4718592-bits = 589824-byte = 576kb
So, in a normal wallpaper, you can store for example 576kb of data (that could be text or binary data). But take care of compression with data loose, like jpeg.
And remember, 3 colors is just an example, because it will just work if you use 24-bit color-depth images, but it is possible for other color depths too.
Marcel Erz
|
|
|
|
|
Thanks for the reply
Maqsood Ahmed - MCAD.net
Kolachi Advanced Technologies
http://www.kolachi.net
|
|
|
|
|
Hi!
An other possible way would be, to store it in comment fields of file formats. Not every file format has got this comment field, but i.e. gif has it! So, if you need more information about it, I saw an article on this page which describe how to save an exe file to the comment field of an gif:
http://www.codeproject.com/useritems/Steganography.asp[^]
Marcel Erz
|
|
|
|
|
I am using fileappender in the config file
<?xml version="1.0" encoding="utf-8" ?>
<!-- This section contains the log4net configuration settings -->
<log4net>
<!-- Define some output appenders -->
<appender name="LogFileAppender" type="log4net.Appender.FileAppender,log4net" >
<param name="File" value="c:\\temp\\error-log.txt" />
<param name="AppendToFile" value="true" />
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
</layout>
</appender>
<!-- Setup the root category, add the appenders and set the default priority -->
<root>
<level value="All" />
<appender-ref ref="LogFileAppender" />
</root>
</log4net>
In class my code is
[assembly: log4net.Config.Domain("SimpleModule")]
// Configure logging for this assembly using the 'SimpleModule.dll.log4net' file
[assembly: log4net.Config.DOMConfigurator(ConfigFileExtension="log4net", Watch=true)]
namespace SimpleModule
{
/// <summary>
/// Summary description for Math.
/// </summary>
public class Math
{
// Create a logger for use in this class
//private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
private static readonly log4net.ILog log = log4net.LogManager.GetLogger("LogFileAppender");
//public Math()
public static void Main()
{
//if (log.IsDebugEnabled)
log.Debug("Math Constructor");
System.Console.Write("Press Enter");
System.Console.ReadLine();
}
<b>But there are no loggers created in my log file. Can anyone of you please give me the solutions</b>
-- modified at 4:01 Tuesday 13th December, 2005
|
|
|
|
|
string comm="CONTSCAN E:\\projects backup\\ankitclam backup\\Clamtest\\testing\\hello.txt\r\n"
int x=comm.Length;
x=x-7;
string path;
path=comm.Substring(9,x);
MessageBox.Show(path);
it works fine and give path as
E:\projects backup\ankitclam backup\Clamtest\testing\hello.txt
but when i give path
string comm="CONTSCAN E:\\projects backup\\ankitclam backup\\Clamtest\\testing\r\n"
int x=comm.Length;
x=x-7;
string path;
path=comm.Substring(9,x); //crashes here
MessageBox.Show(path);
crashes on line : path=comm.Substring(9,x);
throwing exception
System.Argument.OutOfRangeException:Index and length must refer to location within the string.
Parameter name:length
at System.String.Substring(Int32 startIndex,Int32 length)
Ankit Aneja
"Nothing is impossible. The word itself says - I M possible"
|
|
|
|
|
Both of the above blocks of code will throw an ArgumentOutofRange Exception. That's because the length you are trying to extract is more than the length of the string. The correct block of code would be:
string comm = @"CONTSCAN E:\projects backup\ankitclam backup\Clamtest\testing\hello.txt\r\n" ;
int x = comm.Length ;
x -= 9;
string path = comm.Substring(9,x) ;
Hope this helps.
Bikash Rai
|
|
|
|
|
This is code for case I
and running fine
if(string.Compare("SCAN",0,comm,0,4)==0)
{
int x=comm.Length;
x=x-7;
string path;
path=comm.Substring(5,x);
path=path.Trim();
}
//here comm is having value
//SCAN E:\projects backup\ankitclam backup\Clamtest\testing\hello.txt\r\n
and path=@"E:\projects backup\ankitclam backup\Clamtest\testing\hello.txt"
and also works when
comm = SCAN E:\projects backup\ankitclam backup\Clamtest\testing\r\n
thanks for ur help
i am checking for contscan
Ankit Aneja
"Nothing is impossible. The word itself says - I M possible"
|
|
|
|
|
This obviously will work because the startpoint that you mention in Substring is less than the value you subtract from the length of the string.
In your previous post it was
x=x-7;
string path;
path=comm.Substring(9,x);
which will definately not work, but now its
x=x-7;
string path;
path=comm.Substring(5,x);
which will always work.
Seems like you are messing up the numbers. If you want the above to work with CONTSCAN then it should be something like
string comm = "CONTSCAN E:\\projects backup\\ankitclam backup\\Clamtest\\testing\r\n" ;
int x=comm.Length ;
x -= 11 ;
string path;
path=comm.Substring(9,x);
path=path.Trim();
You must subtract 11 from the string and not 7 because "CONTSCAN " is 9 and "\r\n" is 2. So 9 + 2 = 11.;)
Hope this helps.
Bikash Rai
|
|
|
|