|
Thank you.
|
|
|
|
|
GC will handle it because the first object will no longer be referenced. However be careful with objects that have resources that need to be released.
This makes a big mess:
Bitmap b = new Bitmap(100, 100);<br />
for(int i = 0 ; i < 1000; i++)<br />
{<br />
b = new Bitmap(100, 100);<br />
}
This is correct:
Bitmap b = new Bitmap(100, 100);<br />
for(int i = 0 ; i < 1000; i++)<br />
{<br />
b.Dispose();<br />
b = new Bitmap(100, 100);<br />
}
Alex Korchemniy
|
|
|
|
|
|
how to fit the height of more than one labels at same time in a main form if the labels textlines increes their height while the form width its changing plz helpme with this issue
|
|
|
|
|
If I understand you correctly... you are trying to achieve flow layout.
If all you have on the form is a few labels it would be better to do custom drawing code. For each string you draw you do MeasureString . Using the SizeF that is returned you can calculate where to draw the next string.
Alex Korchemniy
|
|
|
|
|
hi alex thanks by the form isuue but this one i dont understand so much can u explainme better
the labels are putted on runtime not on desingtime and their dock property are setit to top
|
|
|
|
|
Do away with labels completely. I'm assuming that you have no other controls in the way to worry about. Instead handle the Paint event for the form. Inside the paint event "draw" the strings that you have. For each string you draw you keep a record of the location. You can also add padding if necessary. Also make sure that everything is redrawed when resize occurs.
Off the top of my head and not tested:
Graphics g = e.Graphics;<br />
int currentY = 0;<br />
foreach(string s in myStringArray)<br />
{<br />
SizeF sz = g.MeasureString(s, this.Font, this.Width);<br />
g.DrawString(s, this.Font, Brushes.Black, new Rectangle(0, currentY, (int)sz.Width, (int)sz.Height));<br />
currentY += (int)sz.Height;<br />
currentY += 10;
}
Alex Korchemniy
|
|
|
|
|
How to minimize a main form while the closing event with out dispose or close the form;
|
|
|
|
|
Handle the Closing event. In the event set the Visible to false. To prevent the Form from closing in the CancelEventArgs that you get with the event handler set Cancel to true.
See: MSDN docs[^]
Alex Korchemniy
|
|
|
|
|
U could say something:
private void FrmMain_Closing(object sender, System.ComponentModel.CancelEventArgs e)<br />
{<br />
this.WindowState = FormWindowState.Minimized;<br />
this.Hide();<br />
e.Cancel = true;<br />
}
Regards,
Polis
Can you practice what you teach?
|
|
|
|
|
Hi, I have added an SMTP appender to my application using Log4Net for logging and notification - but how do you change pre-configured value (in App.Config)? Here's appender section in my configuration file:
<appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">
<to value="xxx@xxx.com" />
<from value="xxx@xxx.com" />
<subject value="xxx" />
<smtpHost value="localhost" />
<bufferSize value="512" />
<lossy value="true" />
<evaluator type="log4net.Core.LevelEvaluator">
<threshold value="WARN"/>
</evaluator>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%newline%date [%thread] %-5level %logger [%ndc] - %message%newline%newline%newline" />
</layout>
</appender>
The closet thing I found is: http://www.ondotnet.com/pub/a/dotnet/2003/06/16/log4net.html?page=3
But, that's adding a new appender altogether, not re-configuring existing appenders. I need to change to/from email address. Thanks in advance.
Norman Fung
|
|
|
|
|
public class MyDataSet : DataSet
{
private string _sample;
public MyDataSet()
{
}
public string Sample
{
get{return _sample;}
set{_sample = value;}
}
}
When Serialize and Deserialize it alway return
DataSet not MyDataSet.
Help me please
Thank You.
|
|
|
|
|
How are you attempting to serialize and deserialize your type? Are you using binary or xml serialization?
Using binary serialization, I had no trouble serializing a class that inherits from DataSet and deserializing it, receiving the same subtype. Since DataSet implements ISerializable, you do have to provide a deserialization constructor to pass through the info and context to the base class.
Example:
<br />
[Serializable]<br />
public class MyDataSet : DataSet<br />
{<br />
private string _sample;<br />
<br />
public MyDataSet(): base() {}<br />
protected MyDataSet (SerializationInfo info, StreamingContext context) : base (info, context) {}<br />
<br />
<br />
public string Sample<br />
{<br />
get {return _sample;}<br />
set {_sample = value;}<br />
}<br />
}
Then I just tested it with some code like:
MyDataSet mds = new MyDataSet();<br />
<br />
mds.Sample = "Some sample text.";<br />
<br />
BinaryFormatter formatter = new BinaryFormatter();<br />
MemoryStream stream = new MemoryStream();<br />
<br />
formatter.Serialize(stream, mds);<br />
<br />
stream.Position = 0;<br />
MyDataSet mds2 = formatter.Deserialize(stream);<br />
<br />
stream.Close();<br />
<br />
Console.WriteLine(mds2.SampleString);
Another handy feature of DataSets, if this doesn't work out for you and you're looking for something simple, is the ExtendedProperties hashtable. One thing to note is that the data added to the collection must be in string form to guarantee that it'll be persisted if and when the DataSet is serialized to XML.
Hope this helps.
The most exciting phrase to hear in science, the one that heralds the most discoveries, is not 'Eureka!' ('I found it!') but 'That's funny...’
|
|
|
|
|
Thank you very much, Sir.
I will try it again.
My code don't have
[Serializable]
and
protected MaoDataSet (SerializationInfo info, StreamingContext context) : base (info, context) {}
|
|
|
|
|
Dear, Sir.
I have another problem.
I have a class named MyTable derives from DataTable
I add it to MyDataSet.Tables[]
after Serialization and Deserialization
I get DataTable but cannot get MyTable
Thank again.
|
|
|
|
|
--------------------------------------------------------------------------------
Hi
I have a basic question. I want to copy a table in a db to another db (in the destination the table has to be created first with proper columns). the table name and schema will remain same. (I'm using sql server 2000).
Can you provide sample ado.net code, by which I can achieve that?
Thanks
|
|
|
|
|
This question belongs on the ADO/SQL board. Since I wrote the reply to it before stopping to consider that fact, I'll post it here, but in the future, try to keep the questions on-topic, please.
Assuming your tables are on the same server instance (otherwise you'll have to further qualify the table objects, link servers etc.):
INSERT INTO [new database name].[owner id].[new table name]<br />
SELECT * FROM [old database name].[owner id].[old table name]
Example:
INSERT INTO sampledatabase2.dbo.table1<br />
SELECT * FROM sampledatabase1.dbo.table1
This example uses the '*' wildcard for brevity. You really should list out the columns in your own code.
As for what code you might use, I would suggest using a SqlConnection and a SqlCommand (using the ExecuteNonQuery method of the SqlCommand to execute the above syntax).
As an alternative to creating the schema by hand, and assuming you have appropriate permissions, you could also do something like:
SELECT [old database name].[owner id].[old table name].*<br />
INTO [new database name].[owner id].[new table name]<br />
FROM [old database name].[owner id].[old table name]
Example:
SELECT sampledatabase2.dbo.table1.* <br />
INTO sampledatabase1.dbo.tablefoo<br />
FROM sampledatabase2.dbo.table1
but explicitly creating the schema, or using a script created from the original is safer.
The most exciting phrase to hear in science, the one that heralds the most discoveries, is not 'Eureka!' ('I found it!') but 'That's funny...’
|
|
|
|
|
This method is fine only when source and destination tables are in the same server.
What if they are in different servers?
|
|
|
|
|
If you are doing a local replication task I would suggest using DTS or BCP.
Alex Korchemniy
|
|
|
|
|
I am trying to create an addin that will loop through all my projects in a
solution; then loop through all the forms with in a project to set a form property.
How can I test the project item to see if it is a form?
foreach (ProjectItem p in theProject.ProjectItems)
{
System.Diagnostics.Trace.WriteLine("ProjectItem = " + p.Name);
// Check to see if its a c# file Is there a better way
if (p.Name.Substring(p.Name.Length - 3, 3) == ".cs")
{
}
}
|
|
|
|
|
Well, I'm no expert in writing IDE extensions, because I've never written one. But, from 5 minutes worth of research on MSDN, I think you can use the Kind property of the ProjectItem object and see if it equals vsCMElementClass . From there, you'll have to drill into the ProjectItem and determine if the class inherits from System.Windows.Forms.Form. Since a file can contain more than just the Form class, you'll have to check all the classes in the file to find the correct class that represents the Form.
Do I have any example code? No, like I said, I've never written an IDE extension.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
Hello,
I am using a richTextBox1 in a form, when I assign the text with richTextBox.Text or richTextBox.AppendText I am including a '\x0c' secuence that means page break but it is not doing that.
How can I insert a page break in a richTextBox?.
Txn.
|
|
|
|
|
Hmm. I can hardly imagine how a richTextBox could DISPLAY a page break, as its simply a text-scroller. I believe that you have to find a way yourself, like generate a new richTextBox beneath the first one, which would then hold the "next page". You have to include buttons to flip pages, though.
I believe the "\x0c" IS in the text, but simply not interpreted.
Cheers
Sid
|
|
|
|
|
Simply inserting "\x0c" will not do as it is recognized merely as a text which is the job of a RichTextBox (i.e., basically to display text). It will not "execute" commands unless you make it do so by writing some code.
If you notice, in MS Word, in the "Normal View", only a dotted line is shown for a page break (unlike the "Print Layout View"). It may be possible to write code in some imaginative way to draw the illusion of page break in a RichTextBox by creating a dotted line after a particular number of lines or length, etc. But, then you'll have to take care/control of the same on all occasions such as printing or scrolling, etc, and also to ensure that the same is not included in the actual text being searched or printed, etc.
Another option could be to create your own text editor (for some help on creating one by using say ArrayList of strings / lines and displaying them through code or trying something like what is known as linear model, see here[^]).
|
|
|
|
|
Thanks friedsfor your help,
perhaps I forgot to say it is not important for me what the RichTextBox display, what I really want is to see the text into a printPreviewDialog1 and is on this object where the line feed (page break) is not reflecting, that is when I want to Preview the document.
I don´t know if I need to do something with the document that I am using with the printPreviewDialog1.
this.printPreviewDialog1.Document = this.printDocument1;
Sorry if I was not explaining the correct functionality.
Tnx.
|
|
|
|