|
Why not just save the values in a text or binary file using
System.IO.StreamWriter / StreamReader or
System.IO.BinaryWriter / BinaryReader
Save the settings in form_Closing and read them in again in form_Load.
Kev
|
|
|
|
|
IsolatedStorageFile
"When the only tool you have is a hammer, a sore thumb you will have."
|
|
|
|
|
|
i have this code in wich i define a local variable t3 of type DataTable.
i want to overwrite this code so that i get the same output BUT i should not define any Local variable !!!
please help me !!
Hint : DataSet can be added to the solution
using System ;
using System.Drawing ;
using System.Collections ;
using System.ComponentModel ;
using System.Windows.Forms ;
using System.Data ;
using System.Net ;
using System.Net.Sockets ;
namespace AddRowTOGrid
{
///
/// Summary description for Form1.
///
public class Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.Button btnAdd;
private System.Windows.Forms.TextBox txtSource;
private System.Windows.Forms.DataGrid dataGrid1;
///
/// Required designer variable.
///
private System.ComponentModel.Container components = null;
DataTable t3 = new DataTable();
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.btnAdd = new System.Windows.Forms.Button();
this.txtSource = new System.Windows.Forms.TextBox();
this.dataGrid1 = new System.Windows.Forms.DataGrid();
((System.ComponentModel.ISupportInitialize)(this.dataGrid1)).BeginInit();
this.SuspendLayout();
//
// btnAdd
//
this.btnAdd.Location = new System.Drawing.Point(88, 80);
this.btnAdd.Name = "btnAdd";
this.btnAdd.TabIndex = 0;
this.btnAdd.Text = "ADD";
this.btnAdd.Click += new System.EventHandler(this.btnAdd_Click);
//
// txtSource
//
this.txtSource.Location = new System.Drawing.Point(192, 80);
this.txtSource.Name = "txtSource";
this.txtSource.Size = new System.Drawing.Size(104, 20);
this.txtSource.TabIndex = 1;
this.txtSource.Text = "";
this.txtSource.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.txtSource_KeyPress);
//
// dataGrid1
//
this.dataGrid1.DataMember = "";
this.dataGrid1.Dock = System.Windows.Forms.DockStyle.Bottom;
this.dataGrid1.HeaderForeColor = System.Drawing.SystemColors.ControlText;
this.dataGrid1.Location = new System.Drawing.Point(0, 165);
this.dataGrid1.Name = "dataGrid1";
this.dataGrid1.ReadOnly = true;
this.dataGrid1.RowHeaderWidth = 32;
this.dataGrid1.Size = new System.Drawing.Size(400, 112);
this.dataGrid1.TabIndex = 2;
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(400, 277);
this.Controls.Add(this.dataGrid1);
this.Controls.Add(this.txtSource);
this.Controls.Add(this.btnAdd);
this.Name = "Form1";
this.Text = "Form1";
this.Load += new System.EventHandler(this.Form1_Load);
((System.ComponentModel.ISupportInitialize)(this.dataGrid1)).EndInit();
this.ResumeLayout(false);
}
#endregion
///
/// The main entry point for the application.
///
[STAThread]
static void Main()
{
Application.Run(new Form1());
}
private void btnAdd_Click(object sender, System.EventArgs e)
{
if ( txtSource.Text.ToString()!="")
{
t3.Rows.Add(getSource());
txtSource.Text="";
}
else
MessageBox.Show("Empty Row Can't Be Added");
}
private string[] getSource()
{
string s = txtSource.Text.ToString();
string [] data = new string[]{s} ;
return data ;
}
private void Form1_Load(object sender, System.EventArgs e)
{
AddCR();
}
private void AddCR()
{
DataTable t = new DataTable("Test");
DataRow dtR;
dtR = t.NewRow();
t.Columns.Add();
dataGrid1.DataSource = t ;
t3 = t ;
}
private void txtSource_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
if ( e.KeyChar==13 )
if ( txtSource.Text!="")
{
t3.Rows.Add(getSource());
txtSource.Text="";
}
else
MessageBox.Show("Empty Row Can't Be Added");
}
}
}
|
|
|
|
|
Are you saying that you dont want to define t3 but you still want to display the information that you would have put in t3 in your datagrid?
Any particular reason why you don't want to define a table variable?
Kev
|
|
|
|
|
hi
my supervisor want me to do that , just for security matters
can u help me ?
he told me that i can declare a DataSet in the addRC() function , and retrive this DataSet from the button1_Click() ..
any thing to help me with ??
|
|
|
|
|
What addRC() function??
If you use a dataset then to the best of my knowledge you still need to use a datatable but you don't have to declare tehm first because the DataSet calss has a tables collection.
DataSet.Tables.Add()
You can add a new table to your dataset using the above code
once you have added the table to the dataset you can refer to it by
DataSet.Tables[0];
Then you can set up your table programaticaly and your away.
Hope this solves your problem
Kev
|
|
|
|
|
Help please,
I got some .dll written in Clarion 5.5. Can I (and how!) call it from my c# application.
Boris
|
|
|
|
|
How to convert string or StringBuilder to System.IO.Stream using C# ?
pls guide
|
|
|
|
|
|
If you haven't the option to use StringWriter, use MemoryStream and Convert.GetBytes
|
|
|
|
|
a WinForm as cool as windows media player and real player using C#?
like their button,like their skin?
thanks!
|
|
|
|
|
how can i make y orientation to up in c# coordinate system ,such as in vc++ ,use SetMapMode(MM_HIMETRIC) functon .
|
|
|
|
|
I have developed an installer for an application that utilizes the cygwin gcc compiler. I have to bundle the gcc together with the application. I have copied the structure of the cygwin gcc directories as it is. There a few shortcuts in the gcc directory structure that point to some directories and files residing inside the gcc directory structure. I also corrected the shorcut targets using orca after making the release msi. The problem is that the compiler doesn't seem to find the files and directories reffered by the shortcuts. If i replace the gcc folder created by the installer with the original gcc directory all works well.
I have made sure that the directory structure is copied as is and double checked it as well.
Kindly help me out of this problem.
|
|
|
|
|
I am trying to figure out the best way to convert a HTML page to an image. I need to be able to do this without actually displaying the URL in the browser and need to capture the entire horizontal and vertical size.
I have see some commercial products that appear to be using the IE control to perform this functionality but I cannot find anything on the web that discusses how this is done.
Does anyone have any ideas about how this can be accomplished?
|
|
|
|
|
Take a screen shot.
/\ |_ E X E GG
|
|
|
|
|
Unfortunately, it is not that simple. I need to be able to capture the entire rendered page regardless of the size - not just what is displayed in a browser window. Additionally, I want to do this entirely in code with no UI. I believe most of the ActiveX controls and other utilities out there are using a hidden IE control but I have not been able to get past the "visible" window problem.
|
|
|
|
|
This has been really puzzling me.
I have a windows services, written in c#.
What I'm trying to do now is to force single-threaded apartment.
So here's how my code look like:-
//Main Entry for Process
static void Main()
{
Thread.CurrentThread.ApartmentState = System.Threading.ApartmentState.STA;
}
When services starts, it will call this:-
protected override void OnStart(string[] args)
{
if (Thread.CurrentThread.ApartmentState == System.Threading.ApartmentState.STA)
{
EventLog.WriteEntry("SvcTest","Single Thread Apartment");
}
else
{
EventLog.WriteEntry("SvcTest",Thread.CurrentThread.ApartmentState.ToString());
}
To my surprise, it's still showing the CurrentTread.ApartmentState as "MTA" (Multi-Threaded Apartment).
Can someone explain this.. .
Stanley
|
|
|
|
|
jbx1828 wrote:
static void Main()
{
Thread.CurrentThread.ApartmentState = System.Threading.ApartmentState.STA;
}
Try changing it to this:
[STAThread]
public static void Main()
{
}
- Nick Parker My Blog | My Articles
|
|
|
|
|
|
Any help is greatly appreciated.
I've made a few changes.
<br />
[STAThread]<br />
static void Main()<br />
{<br />
Thread t = new Thread(new ThreadStart(WorkerThread));<br />
t.ApartmentState = ApartmentState.STA;<br />
t.Start();<br />
}<br />
<br />
static void WorkerThread()<br />
{<br />
ServiceBase.Run(new System.ServiceProcess.ServiceBase[] { new TestSvc() });<br />
}<br />
and in the onStart Method, when window services starts, it stills show
thread as MTA. I am just LOST... Unless, there is something I'm missing here.
Stanley
|
|
|
|
|
I am new to C# and I am having some problem understanding arrays. I am getting the following exception:
An unhandled exception of type 'System.FormatException' occurred in mscorlib.dll
Additional information: Index (zero based) must be greater than or equal to zero and less than the size of the argument list.
The problem seems to be (string)ie.Current. I do not understand why I cannot retrieve the value. Any ideas would be appreciated.
<br />
using System;<br />
using System.Collections;<br />
<br />
namespace ConsoleApplication2 <br />
{<br />
<br />
class Class1 <br />
{<br />
<br />
[STAThread]<br />
static void Main(string[] args) <br />
{<br />
Hashtable region = new Hashtable();<br />
IDictionaryEnumerator ide;
ArrayList al;<br />
IEnumerator ie;
string indicator = ""; <br />
<br />
do <br />
{<br />
Console.Write("Enter region name: "); <br />
region.Add(Console.ReadLine(), new ArrayList()); <br />
<br />
Console.Write("Enter another region? (y/n): ");<br />
indicator = Console.ReadLine();<br />
<br />
} while(indicator.ToUpper() == "Y");<br />
<br />
ide = region.GetEnumerator();<br />
while (ide.MoveNext()) <br />
{<br />
al = (ArrayList)ide.Value;<br />
al.Add("foo");<br />
}<br />
<br />
ide = region.GetEnumerator();<br />
while (ide.MoveNext()) <br />
{<br />
al = (ArrayList)ide.Value;<br />
ie = al.GetEnumerator();<br />
while (ie.MoveNext()) <br />
{<br />
Console.WriteLine("hash key: {1} array value: {2}",(string)ide.Key, (string)ie.Current);<br />
} <br />
<br />
Console.WriteLine(ide.Key);<br />
Console.WriteLine(ide.Current);<br />
}<br />
<br />
Console.ReadLine();<br />
}<br />
}<br />
<br />
<br />
}<br />
|
|
|
|
|
Have you made sure that ie.Current is a string ?
Christian
I have drunk the cool-aid and found it wan and bitter. - Chris Maunder
|
|
|
|
|
Yes, actually I cast it just in case:
(string)ie.Current
|
|
|
|
|
I can see that you cast it, and I'm sure there is a magical world in which this will always work. Have you stepped through to make sure that it is a valid target for this cast, and checked what the value is when it fails ?
Christian
I have drunk the cool-aid and found it wan and bitter. - Chris Maunder
|
|
|
|