|
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Diagnostics;
namespace WindowsTestApp
{
///
/// Summary description for Form1.
///
public class Form1 : System.Windows.Forms.Form
{
private Point m_mouseDownPoint;
private int m_currentIndex;
private System.Windows.Forms.Button btnTest;
private System.Windows.Forms.ListBox lstTest_1;
private System.Windows.Forms.ListBox lstTest_2;
///
/// Required designer variable.
///
private System.ComponentModel.Container components = null;
public Form1()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();
//
// TODO: Add any constructor code after InitializeComponent call
//
}
///
/// Clean up any resources being used.
///
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region Windows Form Designer generated code
///
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
///
private void InitializeComponent()
{
this.lstTest_1 = new System.Windows.Forms.ListBox();
this.btnTest = new System.Windows.Forms.Button();
this.lstTest_2 = new System.Windows.Forms.ListBox();
this.SuspendLayout();
//
// lstTest_1
//
this.lstTest_1.AllowDrop = true;
this.lstTest_1.Items.AddRange(new object[] {
"Line 1",
"Line 2",
"Line 3",
"Line 4"});
this.lstTest_1.Location = new System.Drawing.Point(32, 24);
this.lstTest_1.Name = "lstTest_1";
this.lstTest_1.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended;
this.lstTest_1.Size = new System.Drawing.Size(120, 95);
this.lstTest_1.TabIndex = 0;
this.lstTest_1.MouseDown += new System.Windows.Forms.MouseEventHandler(this.lstTest_1_MouseDown);
this.lstTest_1.MouseMove += new System.Windows.Forms.MouseEventHandler(this.lstTest_1_MouseMove);
//
// btnTest
//
this.btnTest.Location = new System.Drawing.Point(96, 136);
this.btnTest.Name = "btnTest";
this.btnTest.Size = new System.Drawing.Size(120, 23);
this.btnTest.TabIndex = 1;
this.btnTest.Text = "Test";
this.btnTest.Click += new System.EventHandler(this.btnTest_Click);
//
// lstTest_2
//
this.lstTest_2.AllowDrop = true;
this.lstTest_2.Items.AddRange(new object[] {
"Line 1",
"Line 2",
"Line 3",
"Line 4"});
this.lstTest_2.Location = new System.Drawing.Point(168, 24);
this.lstTest_2.Name = "lstTest_2";
this.lstTest_2.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended;
this.lstTest_2.Size = new System.Drawing.Size(120, 95);
this.lstTest_2.TabIndex = 2;
this.lstTest_2.DragOver += new System.Windows.Forms.DragEventHandler(this.lstTest_2_DragOver);
this.lstTest_2.DragDrop += new System.Windows.Forms.DragEventHandler(this.lstTest_2_DragDrop);
this.lstTest_2.DragEnter += new System.Windows.Forms.DragEventHandler(this.lstTest_2_DragEnter);
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(304, 182);
this.Controls.Add(this.lstTest_2);
this.Controls.Add(this.btnTest);
this.Controls.Add(this.lstTest_1);
this.Name = "Form1";
this.Text = "Form1";
this.ResumeLayout(false);
}
#endregion
///
/// The main entry point for the application.
///
[STAThread]
static void Main()
{
Application.Run(new Form1());
}
private void btnTest_Click(object sender, System.EventArgs e)
{
Debug.WriteLine("btnTest_Click::Start");
WriteSelectedItems(lstTest_1);
}
private void lstTest_2_DragDrop(object sender, System.Windows.Forms.DragEventArgs e)
{
Debug.WriteLine("lstTest_2_DragDrop::Start");
WriteSelectedItems(lstTest_1);
}
private void lstTest_2_DragEnter(object sender, System.Windows.Forms.DragEventArgs e)
{
Debug.WriteLine("lstTest_2_DragEnter::Start");
// If the data is text, allow data to copied the ListBox control
if(e.Data.GetDataPresent("Text"))
{
e.Effect = DragDropEffects.Copy;
}
else
{
e.Effect = DragDropEffects.None;
}
}
private void lstTest_2_DragOver(object sender, System.Windows.Forms.DragEventArgs e)
{
// Retrieve the line at the specified location within the ListBox
Point pt = new Point(e.X, e.Y);
m_currentIndex = lstTest_2.IndexFromPoint(lstTest_2.PointToClient(pt));
}
private void lstTest_1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
Debug.WriteLine("lstTest_1_MouseDown::Start");
m_mouseDownPoint = new Point(e.X, e.Y);
}
private void lstTest_1_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
{
if(e.Button == MouseButtons.Left)
{
// We know the mouse is down - has it moved enough to consider it a drag?
Size dragBoxSize = SystemInformation.DragSize;
if((dragBoxSize.Width > Math.Abs(m_mouseDownPoint.X - e.X)) || (dragBoxSize.Height > Math.Abs(m_mouseDownPoint.Y - e.Y)))
{
Debug.WriteLine("lstTest_1_MouseMove::Start - Drag started");
WriteSelectedItems(lstTest_1);
// We should consider this a drag ...
lstTest_1.DoDragDrop("Test", DragDropEffects.Copy);
}
}
}
private void WriteSelectedItems(ListBox lst)
{
Debug.WriteLine("WriteSelectedItems::Start");
Debug.WriteLine("WriteSelectedItems: count=" + lst.SelectedIndices.Count);
for(int i = 0; i < lst.SelectedIndices.Count; i++)
{
try
{
Debug.WriteLine(lst.SelectedIndices[i] + "=" + lst.SelectedItems[i]);
}
catch(IndexOutOfRangeException e)
{
Console.WriteLine("Exception caught: {0}", e);
}
}
}
}
}
|
|
|
|
|
i need to compare two Image objects in this way
if(Image1 == Image2)
my question: is this comparing as well as a numerical one (int == int) or it is more binding for processor computation?
|
|
|
|
|
Sasuko wrote:
is this comparing as well as a numerical one (int == int) or it is more binding for processor computation?
I'd say operator == would simply check that both images are references to the same bitmap, it wouldn't check bit for bit if they have the same image contained in them. To do that, you could check my image processing articles. Yes, that would be computationally expensive.
Christian Graus - Microsoft MVP - C++
|
|
|
|
|
I am trying to add 2 buttons to each row of a data grid to allow to allow a user to add or remove a permission. The problem is I cannot seam to get access to the System.Web.UI.WebControls.DataGridCommandEventArgs to determine which button was selected. The data grid defaults to System.EventArgs e. A error comes up in the private void nitializeComponent(). How do I get the data grid control to allow the DataGridCommandEventArgs arguement.
Thanks in advance
Paul
|
|
|
|
|
Create the button with an onclick event, and set it's ID based on a property of the data source, so you can work it out from there.
Christian Graus - Microsoft MVP - C++
|
|
|
|
|
Hi Christian:
Thanks for the reply.
When I add the button I select the Select button from the Button column in the datagrid properties. The only place I can see to set its ID is in the Command name text box in the datagrid properties. I also tried using a Delete button and Edit, Update, Cancel buttons.
Paul
|
|
|
|
|
If you're using webforms, don't use the designer, it's crap. You want to set the ID using ID=<%DataBinder.Eval("columnName")%> within the aspx code.
Christian Graus - Microsoft MVP - C++
|
|
|
|
|
Thanks for your help
Paul
|
|
|
|
|
I need to create a login(registration) page using Windows Forms for redirecting different users to access data from an Access database.Could you please give me any hint about it?
|
|
|
|
|
So you want to use passwords from the Access database, from the Windows account, or of your own creation ? You're writing a Windows Forms app that uses Access for the data layer ?
Christian Graus - Microsoft MVP - C++
|
|
|
|
|
Actually I want for the users to put in the form their own registration data which will be written in an Access database.Thank you
|
|
|
|
|
So the passwords are stored in Access ? Then all you need is to check access to see if hte password and username match, right ? Which bit are you stuck on ?
Christian Graus - Microsoft MVP - C++
|
|
|
|
|
Greetings,
I am working on a C# desktop application.
There is a piece of code when the user clicks on the tracking number, it should bring the browser to the UPS web site and pass the tracking number to the web site to get currently delivery information.
I was wondering who knows the right syntax to pass the variable string to the web site.
So far, I am just passing the literal variable (track_no).
the code is as follow:
string track_no;
ControlName[iCnt,7].Tag = "http://wwwapps.ups.com/tracking/tracking.cgi?type1=1&inquiry1=track_no"
If you can, please reply to my email hsu@arbonne.com.
Thanks a Million
Handy Su
|
|
|
|
|
Greetings,
Never mind, I figure it out.
The answer is as follow, if some stuck like me in the future.
ControlName[iCnt,7].Tag = "http://wwwapps.ups.com/tracking/tracking.cgi?type1=1&inquiry1=" + track_no.ToString();
Handy Su
|
|
|
|
|
Dear All,
Does anyone know how can I call a function from an Intel Library?
Please help...
Best Regards,
E.A.
|
|
|
|
|
What language is the library written in, C? If C, you can use P/Invoke[^] to call the native library.
If it's written as a C++ class instance function, then you may need to wrap the dll in a managed C++ function that instanciates the class and calls the member function.
If the DLL uses COM (which I doubt, coming from Intel), you can add a reference to the dll itself inside Visual Studio (or manually use the .NET aximp tool), and a runtime callable wrapper will be generated automatically for you.
Tech, life, family, faith: Give me a visit.
I'm currently blogging about: Who is Jewish, the Trivia Game!
Judah Himango
|
|
|
|
|
Thanks Judah,
It's in C/C++...
Actually I have a ".dll" file in the bin folder,a ".lib" of type C/C++ inline file & an "exports library file" in the lib folder...
Shall I call the .dll or the .lib?
What's the use of the "exports library file"?
Sorry if my questions sound naive but I have never dealt with dlls before...
Best Regards,
E.A.
|
|
|
|
|
|
Hi,
I'm using Visual Studio 2003 .NET and the application has this title bar with a heading and two buttons - hide/show and close - this title bar is circled in the image provided (image link). My question is what kind of a control is it, or maybe a combination of controls and how do I create something like that to insert into my form.
Top red oval in the image is the title bar I'm asking about
Image link:
http://img387.imageshack.us/my.php?image=vs20032ij.png [^]
Thank you in advance.
|
|
|
|
|
They are called docking windows, your in luck because I have tried out loads of different ones today, see the article Dock Manager for a free implementation, if your after designer support and more I've found either SandDock or Actipro UI studio are the best.
The larger circle in your picture is called a propertygrid this is part of the framework, right click your toolbox and choose add/remove items as it is not enabled by default.
|
|
|
|
|
How would i be able to use tags on nodes in a treeview to store and retrieve information.
|
|
|
|
|
If you have a bunch of Infos you want to store in a node you could make a helper class containing everything you need and store it in the node:
private void SetInfo(MyInfosClass info, TreeNode node) {
node.Tag = info;
}
private MyInfosClass GetInfo(TreeNode node) {
return node.Tag as MyInfosClass;
}
A in my opinion better idea would be to inherit from TreeNode and add some extra properties.
public class MyTreeNode : TreeNode {
private string _info1;
private int _info2;
public string Info1 {
get { return _info1; }
set { _info1 = value; }
}
public int Info2 {
get { return _info2; }
set { _info2 = value; }
}
}
With this solution you naturally would have to instantiate and use the MyTreeNode class instead of TreeNode.
|
|
|
|
|
Hi all,
I am considering using the default xml serializer in C#.
My concerns for using the default xml serializer or implement the serializer code myself are as follow,
1. The class has arrayList inside which need to be serialized.
2. The class have base class which also need to be serialized.
3. I need to control the depth of the serialization for the objects referenced by the class
So what should I adopt ? Use the default serializer or write my own code ?
Thanks
|
|
|
|
|
1. No problem - the ArrayList is also serializable
2. No problem as long as all used classed are serializable (either by atrtibute or ISerializable interface)
3. Probably a problem but this depends. With the default behaviour this isn't possible. You will either have to implement ISerializable to hae a better control on what is being serialized or have an ISerializationSurrogate to stop certain classes from being serialized. If later is valid in your case depends on your data structure.
(Bonus)
4. Keep in mind that .Net serialization is rather slow. If you are serializing a rather big amount of stuff you'll be better of doing it yourself. This is especially true if you have lots of small objects.
|
|
|
|
|
Thanks so much.
Then I think I need to do it for myself coz speed is my first concern.
May I ask you also whether any pattern for this kind of manually serialization so that I won't miss out any attributes in the class to be serialized manually or it can reduce errors as my class already changes ?
|
|
|
|