|
Neither method will work. Once your app closes, any threads it started will also close. If you want to download and launch a form, you'll have to either download it as a seperate .EXE and launch that, or you'll have to keep your current app open.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
C# newbie looking for a simple way to access a control on a form, a label or progress bar, from another class.
If not a simple, a difficult one, or even the correct one will suffice.
BBB
|
|
|
|
|
It all comes down to references and access. One class must first have a reference to another. So, your form that wants to access a control on another form must have a reference to that form. You could pass a reference as a property, for example.
Second, that control has to be accessible. By default, the Windows Forms designer makes all controls you drag-and-drop onto the designer private, so other classes - even derivative classes - can't access the field. You can either change the accecss modifier (you can do this both in the PropertyGrid from the designer or in the code file). You could, however, enumerate the form's Controls collection and find the control by name, which would be accessible (just because the control's field is private doesn't mean the control itself is private - only the field that holds the reference to it is).
If these are parent/child forms, then you can use the Parent property, for example, of the child form, but you must make sure to cast it to the parent form's type in order to access fields by name. An example follows:
using System;
using System.Drawing;
using System.Windows.Forms;
class ParentForm : Form
{
static void Main()
{
Application.Run(new ParentForm());
}
Button openChild;
internal TextBox childText;
internal ParentForm()
{
Text = "Example: Parent Form";
openChild = new Button();
Controls.Add(openChild);
openChild.Location = new Point(8, 8);
openChild.Text = "Open Child";
openChild.Click += new EventHandler(openChild_Click);
childText = new TextBox();
Controls.Add(childText);
childText.Location = new Point(8, openChild.Bottom + 8);
childText.ReadOnly = true;
}
void openChild_Click(object sender, EventArgs e)
{
using (ChildForm form = new ChildForm())
form.ShowDialog(this);
}
}
class ChildForm : Form
{
TextBox myText;
internal ChildForm()
{
Text = "Example: Child Form";
myText = new TextBox();
Controls.Add(myText);
myText.Location = new Point(8, 8);
myText.TextChanged += new EventHandler(myText_TextChanged);
}
void myText_TextChanged(object sender, EventArgs e)
{
ParentForm parent = Owner as ParentForm;
if (parent != null)
parent.childText.Text = myText.Text;
}
} You should also read Access Modifiers[^] in the C# programmers reference.
This posting is provided "AS IS" with no warranties, and confers no rights.
Software Design Engineer
Developer Division Sustained Engineering
Microsoft
[My Articles] [My Blog]
|
|
|
|
|
Hi there!
I have a problem reading files.
I am using StreamReader readfile and making a = readfile.ReadLine();
I know that the file that I am reading contain words like
Simão, and instead of that the work that appears in string a is Simo.
The streamReader isn´t reading the caracteres like ç, à, á, etc, etc.
What is the problem?!! How can I solve it?!
Thank you very much
|
|
|
|
|
You need to know what codepage/character set the file is encoded with, and set the StreamReader appropriately. At a guess, I'd say your file is probably Windows-1252[^] (if you wrote it with Notepad, or most other text-handling programs). The .NET Framework default is UTF-8. The combination of code points 0xE3 ( = ã in 1252) and 0x6F ( o ) is not a valid UTF-8 character, so the 0xE3 gets discarded.
You should use the StreamReader constructor which takes an Encoding. You can get the user's current culture default code page from System.Globalization.CultureInfo.CurrentCulture.TextInfo.ANSICodePage .
If you're designing new formats I strongly recommend using one of the Unicode formats, either UTF-16 (which the Framework and Windows call 'Unicode') or UTF-8. The Framework's reader classes can auto-detect UTF-16. UTF-8 is more compact for text containing mostly western characters; for far-eastern text, UTF-16 gains an edge.
Stability. What an interesting concept. -- Chris Maunder
|
|
|
|
|
Hi,
I'm trying to create a copy of a datatable using .Copy() but I get an exception. I have no clue why, especially since the exception occurs in designer generated code. My dataset is a typed dataset, and I pass a single datatable to a method.
The code is pretty simple...
private DataTable _dt;<br />
private DataTable _dt2;<br />
<br />
void Test(DataTable dt)<br />
{<br />
_dt = dt;<br />
_dt2 = dt.Copy();<br />
}
Message: Object reference not set to an instance of an object.
Source: System.Data/LookupNode.Bind
StackTrace: at System.Data.LookupNode.Bind(DataTable table, ArrayList list)
at System.Data.DataExpression.Bind(DataTable table)
at System.Data.DataExpression..ctor(String expression, DataTable table, Type type)
at System.Data.DataColumn.set_Expression(String value)
at System.Data.DataTable.CloneTo(DataTable clone, DataSet cloneDS)
at System.Data.DataTable.Clone(DataSet cloneDS)
at System.Data.DataTable.Clone()
at AdonisTech.Adonis2005.StayLibrary.tblParents_AlertsDataTable.Clone() in StayLibrary\DataSets\ParentDataSet1.cs:line 4327
at System.Data.DataTable.Copy()
at AdonisTech.Adonis2005.WinUI.frmAlerts..ctor(String formTitle, DataTable table, FormType formType) in WinUI\General\frmAlerts.cs:line 17
at AdonisTech.Adonis2005.WinUI.frmEditParent.btnAlerts_Click(Object sender, EventArgs e) in WinUI\Stay\frmEditParent.cs:line 1300
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
|
|
|
|
|
make sure you have instantiated dt before passing it as a parameter into your function.
|
|
|
|
|
Of course it is...
|
|
|
|
|
I am building an admin application for our website using winforms
and C#. Users (who don't know html) are required to maintain
content for the site. I would like to give them the ability to
bold, underline, create links, etc. for the site. All content in
stored in a database as html. Is there a component available for
this that isn't a full blown html editor? I don't need to build
pages with it, just edit text.
Thanks in advance,
Brett
|
|
|
|
|
I have heard good things about www.freetextbox.com, have not used it though. Well now that i have re read your question, you might also look at the writer project(http://gotdotnet.com/Workspaces/Workspace.aspx?id=ee974084-d5c2-44d5-a11b-b2efb96074f8)
it is a wysiwyg windows forms editor. Free textbox is prolly closer to what you need, but it is a asp.net control. =\
|
|
|
|
|
Thanks, Most of what I have seen are asp.net controls. Most of the winforms stuff is overkill. I will take a look at the links.
|
|
|
|
|
I am using a dtp on a form that has an OK button. If the user changes the hour on the dtp and hits the enter key, the OK button_Click event fires without the dtp hour getting updated. How can I prevent this behavior?
For example:
before entry, the dtpMyControl.Value.Hour == 1
the user enters a change so the control looks like 05:59:59
then hits the enter key (the '05' being highlighted)
the validation code that reads the hour still has dtpMyControl.Value.Hour==1.
|
|
|
|
|
I found my answer.
simply add a Focus call in the _Click handler like so:
private void buttonOK_Click(..)
{
...
buttonOK.Focus(); // If the dtp (or other) control didn't loose focus, it does now
...
}
|
|
|
|
|
Hi, guys
I need a time stamp, which can remember time when the source code is compiled for the first time. So DateTime.Now is useless.
How can I get it?
Thank you very much.
vigorous
|
|
|
|
|
You mean like the "File Created" date that every file on FAT/32, NTFS, and most other file systems has? If you want to access this from code, use the FileInfo class along with the local path of your assembly, which you can get form Assembly.GetExecutingAssembly().Location .
This posting is provided "AS IS" with no warranties, and confers no rights.
Software Design Engineer
Developer Division Sustained Engineering
Microsoft
[My Articles] [My Blog]
|
|
|
|
|
I know I am doing something silly, but I cant seem to access the Item property of a Hastable:
Hashtable myHash = new Hashtable();
myHash.Item;
Produces a build error
"System.Collections.Hashtable does not contain a definition for 'Item' "
But it sez in help that Item is a public property of Hashtable. Am using VS2003 Enterprise with Frameworks 1.1 SP1
Many thanks
|
|
|
|
|
In C# the "Item" property is accessed using indexer syntax. So instead you would write something like this.
Hashtable myHash = new Hashtable();
object value = myHash[key];
|
|
|
|
|
The Item property of HashTable is the indexer in C#. You access it using this syntax:
object val = myHash[objKey];
Charlie
if(!curlies){ return; }
|
|
|
|
|
Hi there!!
I´m having problems here. I want to make a drag and drop operation with a TreeNode of a treeview. I found that if I want to make the drag and drop operation with the TreeView it is possible. I just want to know if it is possible to make the same operation with only one node of the treeView.
Thanks for your help, Sérgio
|
|
|
|
|
That's what the TreeView.ItemDrag event is for. It fires when you begin dragging a TreeNode . To handle dragging and dropping within the TreeView , you additionally handle the DragOver and DragDrop events at a minimum.
There is actually a good example of handling these events in the documentation for the TreeView.ItemDrag event in the .NET Framework SDK.
Note that unless you serialize your TreeNode it will not be available to other applications (or AppDomains - without marshaling in the source application).
This posting is provided "AS IS" with no warranties, and confers no rights.
Software Design Engineer
Developer Division Sustained Engineering
Microsoft
[My Articles] [My Blog]
|
|
|
|
|
i assigne a number from Databaseto ValueMemeber in combobox.and i tryed to use it from ComboBox.SelectedValue but it return an object type but i need the number on this object for select a value in another Table but is not working.
Thnaks i need help please
|
|
|
|
|
You need to cast the value.
E.g. int theInt = (int) ComboBox.selectedValue;
|
|
|
|
|
Thanks to reply me but i did this casting but it give me this message
specified cast is not Valide
Thanks for your time please help me
|
|
|
|
|
I'm not quite sure what you are trying to do but you can always use the debugger watch windows to determine the type of the object.
|
|
|
|
|
How are you loading the combo?
|
|
|
|